TodoList开发笔记 – Part Ⅳ
跌跌撞撞总算是把客户端开发好了,后台的代码因为不复杂,就写了些单元测试跑一跑就算通过了,大部分时间都是在调整脚本。
这一节开始部署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 Ⅳ的更多相关文章
- TodoList开发笔记 – Part Ⅱ
上一节给出了应用的两个主要UML类图,应用采用的技术也给出了,这一节开始实际设计编码 一.应用公开的方法 其实就几个的方法而已 1.代办事项的CRUD 2.代办事项归类目录的CRUD 3.代表事项“已 ...
- TodoList开发笔记 – PartⅠ
做了一年多的桌面软件,最近开始转向Web方面的开发,既然比较熟悉Net那么首当其冲就是学习ASP.Net,以及HTML.CSS.Javascript. 为了检验这个把星期来的学习成果,着手做了一个To ...
- TodoList开发笔记 – Part Ⅲ
本节开始对TodoList项目的客户端进行开发 一.初步了解JQuery 其实我在学校时有接触过一段时间的Web开发,虽然代码量不多也不复杂,但也已经感受到了各浏览器对Web各项标准的恶意,Web界对 ...
- [开发笔记]-未找到与约束ContractName Microsoft.VisualStudio.Text.ITextDocumentFactoryService...匹配的导出【转载自:酷小孩】
原文地址:http://www.cnblogs.com/babycool/p/3199158.html 今天打算用VisualStudio2012做一个js效果页面测试的时候,打开VS2012新建项目 ...
- EasyUI 开发笔记(二)
接上篇 :EasyUI 开发笔记(一) (http://www.cnblogs.com/yiayi/p/3485258.html) 这期就简单介绍下, easyui 的 list 展示, 在easy ...
- EasyUI 开发笔记(一)
由于某些原因,在公司做的后台需要改成类似于Ext.js 形式的后台,主要看好其中的 框架布局,以及tab开页面和弹出式内部窗体. 后来看看,改成EasyUI,较Ext.js 库小很多,也便于公司的初级 ...
- [Openwrt 项目开发笔记]:Openwrt平台搭建(一)
[Openwrt项目开发笔记]系列文章传送门:http://www.cnblogs.com/double-win/p/3888399.html 正文: 最近开始着手进行Openwrt平台的物联网网关设 ...
- Android移动APP开发笔记——Cordova(PhoneGap)通过CordovaPlugin插件调用 Activity 实例
引言 Cordova(PhoneGap)采用的是HTML5+JavaScript混合模式来开发移动手机APP,因此当页面需要获取手机内部某些信息时(例如:联系人信息,坐标定位,短信等),程序就需要调用 ...
- Android移动APP开发笔记——最新版Cordova 5.3.1(PhoneGap)搭建开发环境
引言 简单介绍一下Cordova的来历,Cordova的前身叫PhoneGap,自被Adobe收购后交由Apache管理,并将其核心功能开源改名为Cordova.它能让你使用HTML5轻松调用本地AP ...
随机推荐
- 使用Advanced Installer将.exe程序重新封装为.msi程序
原文:使用Advanced Installer将.exe程序重新封装为.msi程序 使用Advanced Installer将.exe程序重新封装为.msi程序 首先安装Advanced instal ...
- ENode框架Conference案例转载
ENode框架Conference案例分析系列之 - Quick Start 前言 前一篇文章介绍了Conference案例的架构设计,本篇文章开始介绍Conference案例的代码实现.由于代码比较 ...
- GPS坐标互转:WGS-84(GPS)、GCJ-02(Google地图)、BD-09(百度地图)[转]
WGS-84:是国际标准,GPS坐标(Google Earth使用.或者GPS模块)GCJ-02:中国坐标偏移标准,Google Map.高德.腾讯使用BD-09:百度坐标偏移标准,Baidu Map ...
- JAVA设计模式(09):结构化-代理模式(Proxy)
一,定义: 代理模式(Proxy):为其它对象提供一种代理以控制对这个对象的訪问. 二.其类图: 三,分类一:静态代理 1,介绍:也就是须要我们为目标对象编写一个代理对象,在编译期就生成了这个代理对 ...
- c++的vector容器
c++还有一个很常用的容器就是vector容器,他是数组实现的,是一种可变长的容器,在很多的时候可以简化我们的编程.可学习的链接:http://www.cnblogs.com/mr-wid/archi ...
- 基于Servlet、JSP、JDBC、MySQL登录模块(包括使用的过滤器和配置)
遇见前文的注冊模块,本篇是登录模块.主要包含登录主界面,和登录相关编写的LoginAction.LoginDao和LoginService.以及配置的Filter.以下按逻辑顺序记录具体过程和代码: ...
- mysql_SQL_按照日统计微博数
主要备忘: DATE_FORMAT 函数 1:微博对比图(按日统计) SELECT DATE_FORMAT(tw.article_publish_time, '%Y-%m-%d'),count(pag ...
- Android "QR二维码扫描"
支持灯 扫描结果 支持 抄.分享.浏览打开(超链接) 自己主动保存扫描记录 划删除 和源代码 git: http://git.oschina.net/892642257/QRCode csdn(0分) ...
- 【LeetCode】 sort list 单清单归并
称号:Sort a linked list in O(n log n) time using constant space complexity. 思路:要求时间复杂度O(nlogn) 知识点:归并排 ...
- Win7搭建NodeJs开发环境
Win7搭建NodeJs开发环境以及HelloWorld展示—图解 Windows 7系统下搭建NodeJs开发环境(NodeJs+WebStrom)以及Hello World!展示,大体思路如下:第 ...