没有合适的资源?快使用搜索试试~ 我知道了~
首页在没有 IIS 的条件下运行 ASMX
ASP.NET 专门设计为避免依赖于 IIS。基础体系结构是由共同处理传入的 HTTP 消息的 .NET 类构成的一条管线。它被看作管线的原因是每个 HTTP 请求都要经过一系列对象,每个对象执行一些处理。<br>HttpRuntime 类位于管线的前端,负责启动进程。当调用 HttpRuntime 类的静态 ProcessRequest 方法时,管线开始执行。ProcessRequest 带有一个 HttpWorkerRequest 对象,该对象包含当前请求的所有信息。HttpRuntime 使用 HttpWorkerRequest 中的信息来填充 HttpContext 对象。然后它实例化适当的 HttpApplication 类,这个类会调用注册到应用程序的任何 IHttpModule 实现以用于预处理或后期处理。此时会识别、实例化和调用适当的 IHttpHandler 实现。<br>每个进入管线的 HTTP 请求都会发生这个过程。所有 ASP.NET 功能(包括 ASMX 的功能)都包含在这些管线类中。例如,当请求到达 System.Web.Services.Protocols.WebServiceHandlerFactory 类时,就开始支持对 ASMX 终结点的处理,该类负责识别、编译(如果需要)和实例化标识的 ASMX 类,以及调用传入的 SOAP 消息的目标 WebMethod。<br>
资源详情
资源评论
资源推荐

在没有 IIS 的条件下运行 ASMX
发布日期: 1/7/2005 | 更新日期: 1/7/2005
Aaron Skonnard
下载本文的代码:ServiceStation0412.exe (165KB)
当 Microsoft® .NET Framework 第一次发布时,它引入了一个有突破性的 Web 服务框架,那就是 ASMX。
设计 ASMX 的目的在于尽可能地简化 Web 服务的开发过程,这样即使您不是 XML 专家,也可以创建并运行
Web 服务。ASMX 是通过隐藏大多数基础 XML 和 Web 服务细节来实现这一点的。与强制开发人员直接处理
SOAP 信封和 Web 服务描述语言 (WSDL) 文件不同,ASMX 引入了自动映射层,从而实现了与传统 .NET 代
码的连接。
ASMX 也和流行的 ASP.NET HTTP 管线紧密集成。因此,它具有传统 ASP.NET Web 应用程序的优点,例如,
高级的宿主环境和进程模型、可靠的配置和部署选项,以及灵活的扩展性点。结果,ASMX 通常是大多数 Web
服务开发人员的首选。大多数开发人员错误地认为 ASMX 需要 IIS;毕竟,他们所见过的都是这种情况。但事
实上,ASMX 在技术上与 IIS 并没有任何依赖关系。
在没有 IIS 的条件下宿主 Web 服务的需要是非常实际的。在某些环境下,可能有各种原因导致无法在必须宿主
Web 服务的计算机上运行 IIS。幸运的是,在没有 IIS 的条件下,您可以在您的进程中宿主 ASMX。自从 .NET
Framework 1.0 发布以来,就可以实现这一点,但是您必须提供您的 Web 服务器来接收 HTTP 请求。
Cassini 是由 ASP.NET 团队开发的一个示例 Web 服务器,它可以满足这种需要,并允许您在没有 IIS 的条件
下运行 ASP 页。然而,对于大多数开发人员来说,编写他们自己的 Web 服务器或者使用诸如 Cassini 的示例
Web 服务器都是不合理的。
自从 Windows Server™ 2003 和 Windows® XP SP2 发布以后,出现了一个新的 HTTP 协议栈,名为
http.sys。通过 http.sys 和 .NET Framework 2.0 中的一些新托管类(特别是 HttpListener),您就可以
轻松地为您的应用程序构建 Web 服务器,而无需在计算机上安装 IIS。这些进展使得在任何环境中运行 ASMX
成为可能。请注意,.NET Framework 2.0 当前只是测试版,因此还会有所改动。
ASP.NET HTTP 体系结构
ASP.NET 专门设计为避免依赖于 IIS。基础体系结构是由共同处理传入的 HTTP 消息的 .NET 类构成的一条管
线。它被看作管线的原因是每个 HTTP 请求都要经过一系列对象,每个对象执行一些处理。
HttpRuntime 类位于管线的前端,负责启动进程。当调用 HttpRuntime 类的静态 ProcessRequest 方法时,
管线开始执行。ProcessRequest 带有一个 HttpWorkerRequest 对象,该对象包含当前请求的所有信息。
HttpRuntime 使用 HttpWorkerRequest 中的信息来填充 HttpContext 对象。然后它实例化适当的
HttpApplication 类,这个类会调用注册到应用程序的任何 IHttpModule 实现以用于预处理或后期处理。此时
会识别、实例化和调用适当的 IHttpHandler 实现。













安全验证
文档复制为VIP权益,开通VIP直接复制

评论0