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 ...
随机推荐
- shell脚本操作数据库
#!/bin/bash HOST_NAME="localhost" PORT=3306 USERNAME="root" PASSWORD="root& ...
- 微信消息体签名及加解密功能详细解析以及.net实现
原文:微信消息体签名及加解密功能详细解析以及.net实现 前言 微信消息体签名及加密功能已上线,明文传输确实存在安全风险,鉴于微信的用户范围使用之广泛,必定会成为众矢之的.所以大家还是尽快接入安全模式 ...
- linux文章(11)---umask和chmod
一.用途 文将介绍linux环境下有关文件訪问模式相关的命令. umask用来设置默认的文件訪问模式屏蔽值:chmod用来改动文件的訪问模式. 本文将选取ubuntu1 ...
- Linux入门介绍
Linux入门介绍 一.Linux 初步介绍 Linux的优点 免费的,开源的 支持多线程,多用户 安全性好 对内存和文件管理优越 系统稳定 消耗资源少 Linux的缺点 操作相对困难 一些专业软件以 ...
- android如何在代码中设置margin
1.首先看你要设置组件的父容器是什么. 例如,我是FrameLayout其中包括组件.如果调用bottomLayout这是: FrameLayout.LayoutParams lp = new Fra ...
- 多维算法思考(三):AB组合问题
多维算法思考(三):AB组合问题 题目:x个A,y个B可以组合成多少个不同排列的问题. 首先,我们用数学的方式思考,这个问题属于<组合数学>的问题,我们的第一种方法可以用组合思路来求解. ...
- opengl微开发之1-从零開始
对OpenGL有一点了解之后,如今開始真正编写代码. 今天的内容: 使用FreeGLUT创建OpenGL的上下文环境 初始化GLEW 创建一个OpenGL的的模板范例 第一步: 一个OpenGL的上下 ...
- 【转】monkey工具简介
原文地址:http://www.testwo.com/blog/6188 一.Monkey 简介 Android的SDK 里面,Monkey的tools是一个命令行工具,当连接Android设备时 ...
- 【百度地图API】批量地址解析与批量反地址解析(带商圈数据)
原文:[百度地图API]批量地址解析与批量反地址解析(带商圈数据) 摘要:因为地址解析的webserives方式还没有开通,所以先用JS版本的地址解析接口来批量获取地址解析数据吧,同时还能得到商圈的数 ...
- Android MediaPlayer 和 NativePlayer 播放格式控制
对于本机MediaPlayer 支持格型式试验: 对于原生 NativeMedia 的支持格式測试: 这个支持就比較失望了,眼下測试的手机仅仅支持 H.264视频及AAC音频,其他的格式都不支持. 使 ...




