注意IIS 7.0的集成管道模式下HttpApplication 请求管道事件的问题
2008-11-15 22:53
525 查看
今天打算把Community Server 2.0在vista IIS 7.0下跑起来,设置完虚拟目录后浏览,发现HttpContext.Current.Request抛出了System.Web.HttpException,检查了一下IIS下设置成集成管道模式,换成经典管道模式,则不抛出异常,百思不得其解,后来发现msdn上有如下一段话
Global.ascx.cs
protected void Application_Start(Object sender, EventArgs e)
{
Jobs.Instance().Start();
EventLogs.Info("CS.Web Started", "Application", 200);
}
Jobs会调用HttpContext.Current.Request,在集成管道模式下抛出异常。
还有一个问题,在集成管道模式下涉及到CS的url rewriting全部不起作用,找不到路径,我开始试图修改处理程序映射中的“检查文件是否存在”取消打勾,不过却找不到该选项。
后来发现换成经典管道模式也正常了。这里记录一下,给有相同问题的朋友提个醒。
不包含自定义模块或处理程序的 Web 应用程序通常无需更改即可在 IIS 7.0 集成模式下正常工作。对于依赖于自定义模块或处理程序的 Web 应用程序,需要执行以下步骤来使其能够在集成模式下运行:
使用本主题稍后的将 Web Config 文件迁移到集成模式部分中描述的方法之一,在 Web.config 文件的 system.webServer 节中注册自定义模块和处理程序。
仅在自定义模块的 Init 方法中定义 HttpApplication 请求管道事件(如 BeginRequest 和 EndRequest)的事件处理程序。
请确保您已解决 Upgrading ASP.NET Applications to IIS 7.0: Differences between IIS 7.0 Integrated Mode and Classic mode(将 ASP.NET 应用程序升级到 IIS 7.0:IIS 7.0 集成模式和经典模式之间的区别)的“Known Differences Between Integrated Mode and Classic Mode”(集成模式和经典模式之间的已知区别)部分中讨论的问题。
而CommunityServer 的写法如下使用本主题稍后的将 Web Config 文件迁移到集成模式部分中描述的方法之一,在 Web.config 文件的 system.webServer 节中注册自定义模块和处理程序。
仅在自定义模块的 Init 方法中定义 HttpApplication 请求管道事件(如 BeginRequest 和 EndRequest)的事件处理程序。
请确保您已解决 Upgrading ASP.NET Applications to IIS 7.0: Differences between IIS 7.0 Integrated Mode and Classic mode(将 ASP.NET 应用程序升级到 IIS 7.0:IIS 7.0 集成模式和经典模式之间的区别)的“Known Differences Between Integrated Mode and Classic Mode”(集成模式和经典模式之间的已知区别)部分中讨论的问题。
Global.ascx.cs
protected void Application_Start(Object sender, EventArgs e)
{
Jobs.Instance().Start();
EventLogs.Info("CS.Web Started", "Application", 200);
}
Jobs会调用HttpContext.Current.Request,在集成管道模式下抛出异常。
还有一个问题,在集成管道模式下涉及到CS的url rewriting全部不起作用,找不到路径,我开始试图修改处理程序映射中的“检查文件是否存在”取消打勾,不过却找不到该选项。
后来发现换成经典管道模式也正常了。这里记录一下,给有相同问题的朋友提个醒。
相关文章推荐
- 一次面试留下的实际应用问题。关于HttpModule,IIS集成模式。
- IIS 7.0 支持两种管道模式:集成管道模式(Integrated)和经典管道模式(Classic)
- HttpModule在IIS7集成模式下静态资源请求可能带来的问题
- IIS报HTTP 错误 500.24,检测到在集成的托管管道模式下不适用的ASP.NET设置
- 【ASP.NET 问题】IIS发布网站后出现“检测到在集成的托管管道模式下不适用的ASP.NET设置”的解决办法
- IIS 7.0 - Application Request Routing反向代理到VisualSvnServer问题
- IIS托管管道模式的集成和经典比较
- IIS 7.0的集成模式和经典模式
- IIS8.0 HTTP 错误 500.23 - Internal Server Error 检测到在集成的托管管道模式下不适用的 ASP.NET 设置。
- IIS 7 托管管道模式 经典模式(Classic) 集成模式(Integrated) 分析与理解
- 使用IIS 7.0 / 7.5 时配置HttpModules需要注意
- ASP Session校验是否登录,请求管道事件注册函数(HttpModule)
- IIS7集成模式初始化Spring.NET容器(Request is not available in this context exception in Application_Start问题)
- HTTP 错误 500.22 - Internal Server Error 检测到在集成的托管管道模式下不适用的 ASP.NET 设置。
- [转]IIS部署托管管道模式的集成和经典区别
- IIS7中配置asp.net出现“检测到在集成的托管管道模式下不适用的ASP.NET设置”问题(已解决)
- HTTP 错误 500.22 - Internal Server Error 检测到在集成的托管管道模式下不适用的 ASP.NET 设置
- Android http 请求——AsyncHttpClient集成【解决重定向问题、setEnableRedirects 方法异常、线程中调用异常问题】
- IIS 检测到在集成托管管道模式下不适用的ASP.NET设置——解决办法
- HTTP 错误 500.23 - Internal Server Error 检测到在集成的托管管道模式下不适用的 ASP.NET 设置。