跌跌撞撞总算是把客户端开发好了,后台的代码因为不复杂,就写了些单元测试跑一跑就算通过了,大部分时间都是在调整脚本。

这一节开始部署TodoList项目。

一.了解IIS(Internet Infomation Service)

一个Http请求从浏览器发送到服务器接收,其实是经过相当多的步骤的,我们不说客户端的,就单单服务器这边。

1.首先Http是基于Tcp协议的,那么作为服务器我们就得一直监听指定的端口去接收客户端连接,这件事由tcpip.sys内核驱动去帮我们完成。

2.连接完后捏从Tcp数据包中提取出Http数据包,还有客户端的信息,最后还要验证下这个数据包格式对不对,不对就丢了,这件事由http.sys内核驱动来完成。

3.然后要把Http请求根据其不同的Url放到不同的请求队列中去,这件事由WAS服务(SvcHost.exe)来做。

4.应用程序要去IIS注册想要处理的Url格式,比如*.aspx这类Url由Asp.Net的aspnet_isapi.dll处理。

5.WAS服务读取IIS主进程InetInfo.exe的元信息,得到这些Url与处理程序的映射,根据这些信息往http.sys添加或删除消息队列(http.sys内部有自己的映射)。

6.WAS服务会去启动IIS的工作进程w3wp.exe,让它处理相应的http队列,以后就由工作进程与http.sys直接沟通,WAS负责监视工作进程,必要时重启它。

7.工作进程会查询处理特定Url的组件去并加载,例如Asp.Net就会加载aspnet_isapi.dll,在这个过程中又会加载CLR。

8.CLR开始加载AppDomain(如果没有的话),AppDomain内可以包含多个站点,但是http请求只会交给对应Url的站点程序来处理。

9.程序处理的过程也挺繁琐,要经过HttpRuntime > HttpApplication > 构建HttpContext > HttpModule > HttpHandler等等,最终结果返回给http.sys发回客户端

以上可能不够详细,更多的细节可以参考IIS 原理及ASP.NET运行机制浅析

列了挺多的,其实IIS做的就是统筹全局的事。

二.服务器、域名

服务器就是普通的计算机,没什么特别的,我选了一家国外的VPS,虽然放这个项目太大材小用,不过我是打算用它来建立自己博客的哈哈。

域名就比较烦了,最近刚买了一个不过还没解析正确,DNS服务器的缓存急死人了。

三.发布

没什么好说的直接上图

因为项目没用到什么复杂的东西,一路从简很快就搞定了,最后把项目文件上传到VPS重新设置下端口就搞定啦~~~

大家可以访问这个地址看看效果,域名还没解析好,直接访问IP吧

TodoList开发笔记 – Part Ⅳ的更多相关文章

  1. TodoList开发笔记 – Part Ⅱ

    上一节给出了应用的两个主要UML类图,应用采用的技术也给出了,这一节开始实际设计编码 一.应用公开的方法 其实就几个的方法而已 1.代办事项的CRUD 2.代办事项归类目录的CRUD 3.代表事项“已 ...

  2. TodoList开发笔记 – PartⅠ

    做了一年多的桌面软件,最近开始转向Web方面的开发,既然比较熟悉Net那么首当其冲就是学习ASP.Net,以及HTML.CSS.Javascript. 为了检验这个把星期来的学习成果,着手做了一个To ...

  3. TodoList开发笔记 – Part Ⅲ

    本节开始对TodoList项目的客户端进行开发 一.初步了解JQuery 其实我在学校时有接触过一段时间的Web开发,虽然代码量不多也不复杂,但也已经感受到了各浏览器对Web各项标准的恶意,Web界对 ...

  4. [开发笔记]-未找到与约束ContractName Microsoft.VisualStudio.Text.ITextDocumentFactoryService...匹配的导出【转载自:酷小孩】

    原文地址:http://www.cnblogs.com/babycool/p/3199158.html 今天打算用VisualStudio2012做一个js效果页面测试的时候,打开VS2012新建项目 ...

  5. EasyUI 开发笔记(二)

    接上篇 :EasyUI 开发笔记(一)  (http://www.cnblogs.com/yiayi/p/3485258.html) 这期就简单介绍下, easyui 的 list 展示, 在easy ...

  6. EasyUI 开发笔记(一)

    由于某些原因,在公司做的后台需要改成类似于Ext.js 形式的后台,主要看好其中的 框架布局,以及tab开页面和弹出式内部窗体. 后来看看,改成EasyUI,较Ext.js 库小很多,也便于公司的初级 ...

  7. [Openwrt 项目开发笔记]:Openwrt平台搭建(一)

    [Openwrt项目开发笔记]系列文章传送门:http://www.cnblogs.com/double-win/p/3888399.html 正文: 最近开始着手进行Openwrt平台的物联网网关设 ...

  8. Android移动APP开发笔记——Cordova(PhoneGap)通过CordovaPlugin插件调用 Activity 实例

    引言 Cordova(PhoneGap)采用的是HTML5+JavaScript混合模式来开发移动手机APP,因此当页面需要获取手机内部某些信息时(例如:联系人信息,坐标定位,短信等),程序就需要调用 ...

  9. Android移动APP开发笔记——最新版Cordova 5.3.1(PhoneGap)搭建开发环境

    引言 简单介绍一下Cordova的来历,Cordova的前身叫PhoneGap,自被Adobe收购后交由Apache管理,并将其核心功能开源改名为Cordova.它能让你使用HTML5轻松调用本地AP ...

随机推荐

  1. requireJS的使用_API-1

    requireJS的使用_API(1) 之前有介绍过requireJS(模块化开发),可以看看 ,但是不详细,所以今天参考官网来详细介绍一下: 1.加载js文件: RequireJS的目标是鼓励代码的 ...

  2. easyUI的combobox实现级联

    先简介下combobox: easyUI重写了select,取而代之的是combobox,有例如以下几种方式能够创建一个combobox 1.使用select标签,并加上class="eas ...

  3. ACM核武器

    工欲善其事必先利其器,给大家介绍一下ACM里面经常使用的一些工具,平台,作为第一发福利. 详细看这里,我直接粘贴过来有些代码没贴过来  http://wuyiqi.net/house/acm_weap ...

  4. hdu4864Task(馋)

    主题链接: 啊哈哈.点我 题目: Task Time Limit: 4000/2000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Ot ...

  5. 它们的定义ListView,实现Item除去滑动和滑出菜单效果

    这个程序是基于变化从网上开源项目,详情货源忘记.懒得去搜索,.假设有不合适的地方.请与我联系作者.我会及时回复和处理! 序中主要包括两个ListView,一个是实现側滑删除.一个是側滑出菜单,代码中的 ...

  6. 第22章 职责链模式(Chain of Responsibility)

    原文 第22章 职责链模式(Chain of Responsibility) 职责链模式 导读:职责链模式是一个既简单又复杂的设计模式,刚开始学习这个设计模式的时候光示例都看了好几遍.就为了理清里面的 ...

  7. kubernetes多节点部署的决心

    注:以下操作均基于centos7系统. 安装ansible ansilbe能够通过yum或者pip安装,因为kubernetes-ansible用到了密码.故而还须要安装sshpass: pip in ...

  8. Objective-C马路成魔【12-分类和协议】

    郝萌主倾心贡献.尊重作者的劳动成果,请勿转载. 假设文章对您有所帮助.欢迎给作者捐赠,支持郝萌主.捐赠数额任意,重在心意^_^ 我要捐赠: 点击捐赠 Cocos2d-X源代码下载:点我传送 分类与协议 ...

  9. 关于C#操作INI文件的总结

    原文:关于C#操作INI文件的总结   INI文件其实是一种具有特定结构的文本文件,它的构成分为三部分,结构如下: [Section1]key 1 = value2key 1 = value2--[S ...

  10. linux-ubuntu关闭防火墙

    SYNOPSIS iptables [-t table] {-A|-C|-D} chain rule-specification ip6tables [-t table] {-A|-C|-D} cha ...