• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

ASP.NET本质论阅读----网站的应用程序

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

一、简易的web服务器原理

1.socket传输,制定响应包状态,包头包体,传输通讯。

2.简化TCP传输-基于TCPListener的web服务器

3.简化HTTP传输-基于HTTPListener的WEB服务器

二、请求处理:进入ASP.NET、

1.应用程序域:程序集管理的最小逻辑单位(AppDomain),有4大特点

      1.隔离:不同程序域间不能直接访问,跨程序域访问的对象,必须派生自System.MarshalByRefObject

      2.卸载:被加载的程序集,只能以应用程序域为单位卸载

      3.安全:

      4.配置:

2.ASP.NET将网站应用程序寄宿在一个独立的应用程序域中,以便于管理。

3.创建web应用程序域:ApplicationHost的静态方法CreateApplicationHost(Type hostType,string virDir,string phyDir)

4.处理请求对象封装在SimpleWorkerRequest(string page(页面名称.aspx),string query(请求参数), TextWriter output(内容输出流)):HttpWorkerRequest

5.System.Web.HttpRuntime类是整个ASP.NET服务器处理的入口

  静态属性:反映web应用程序域的设置信息,如AppDomainAppPath web应用程序的文件目录等

  静态方法(ProcessRequest(HttpWorkerRequest))处理请求

      对参数HttpWorkerRequest分析和分解,创建方便用于网站应用程序处理用的对象HttpRequest和HttpResponse

 6.辅助常用工具类HttpServerUtility

  1.html和url encode 与decode

7.UA User-Agent :Mozilla/5.0.......Firefox/3.6.6     MSIE8.0

  Microsoft.NET\Framework\4.0\Config\Browers

  类:HttpBrowerCapabilities  Brower

8.自定义asp.net web服务器

  1.创建WebServer类:MarshalByRefObject----//该类一个对象实例作为与监听程序之间的通讯对象,跨域,所以要继承该类

  2.创建处理请求方法:ProcessRequest(string page,string query,System.IO.TextWriter writer) ----//跨域访问,参数必须支持序列化

  3.将参数封装到SimpleWorkerRequest对象实例,通过HttpRuntime进行处理(.ProcessRequest)

  

Public class WebServer:MarshalByRefObject
{
        public void ProcessRequest(
                                string page,
                                string query,
                                system.io.textwriter writer)
        {
              system.web.hosting.SimpleWorkerRequest worker=
                new  system.web.hosting.SimpleWorkerRequest(
                             page,query,writer);
                system.web.HttpRuntime.ProcessRequest(worker);}}

  4. 创建监听程序

    1.创建ProcessRequestHandler 委托,用于设置监听程序接收请求后实际调用的方法引用。

    2.this.ProcessRequest(request.url.AbsolutePath,request.url.query,system.io.StringWriter); ----//利用委托调用ASP.NET服务器进行处理

    3.StringWriter.Tostring()返回处理结果,sw.close();

    4.Response.ContentLength ,Response.ContentType, Content 返回响应包

   5.创建web应用程序域,启动网站------部署程序域

    Type type=typeof(ASPNET.Server.WebServer);

    ASPNET.Server.WebServer server =CreateWorkerAppDomainWithHost("/","e:\\website\\", type) as ASPNET.Server.WebServer

  6.启动网站

    SimpleHttpListener handler = new SimpleHttpListener ();

    handler.SetProcessRequest (server.ProcessRequest);

    handler.Run();

 

    

  

 

 

 


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
ASP.NET设置目录权限发布时间:2022-07-10
下一篇:
ASP.NET验证控件——Page.Validators发布时间:2022-07-10
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap