HTTP 处理程序和 IIS7 的问题
Posted
技术标签:
【中文标题】HTTP 处理程序和 IIS7 的问题【英文标题】:Issue with HTTP Handlers and IIS7 【发布时间】:2011-01-15 05:20:29 【问题描述】:我一直在开发自定义 HTTP 处理程序。使用 ASP.NET 4.0 和 IIS7 的新 web.config <httphandlers>
部分,这在我的开发机器上非常有效。
但是,当我将代码上传到我的共享主机帐户时,我收到了 500 服务器错误。我打电话给我的托管公司,他们说服务器报告了关于检测到不适用于集成管道模式的 web.config 设置的错误。
当他将 IIS 从集成模式切换到经典模式时,主页加载正常,但我的路由页面都报告 403 服务器错误。
我很确定我需要集成模式才能使<httphandlers>
部分工作,但我绝对不是 IIS/管理员。有谁知道问题可能是什么或我接下来可以尝试什么?
编辑:我更新的大部分 web.config:
<?xml version="1.0"?>
<configuration>
<connectionStrings>
[...]
</connectionStrings>
<appSettings>
[...]
</appSettings>
<system.web>
<httpHandlers>
<add verb="*" path="*.zip" type="BlackBelt.ZipHttpHandler"/>
</httpHandlers>
<compilation debug="false" targetFramework="4.0"/>
</system.web>
<system.webServer>
<modules runAllManagedModulesForAllRequests="true"/>
<handlers>
<add verb="*" path="BlackBelt.ZipHttpHandler" name="BlackBelt.ZipHttpHandler" type="BlackBelt.ZipHttpHandler"/>
</handlers>
<!-- Redirect domain.com to www.domain.com -->
<rewrite>
<rules>
<clear/>
<rule name="WWW Rewrite" enabled="true">
<match url="(.*)"/>
<conditions>
<add input="HTTP_HOST" negate="true" pattern="^www\.([.a-zA-Z0-9]+)$"/>
</conditions>
<action type="Redirect" url="http://www.HTTP_HOST/R:0" appendQueryString="true" redirectType="Permanent"/>
</rule>
</rules>
</rewrite>
</system.webServer>
</configuration>
【问题讨论】:
IIS7 集成模式下的处理程序位于多亏了泡利,我才能够弄清楚这一点。虽然 <system.web><httpHandlers>
是我必须更改的部分,以便在从 Visual Studio 运行时使其工作,但 <system.webServer><handlers>
是我必须修改的部分,以便在运行 IIS7 的服务器上运行时使其工作。
我收到了电子邮件,询问我是如何解决这个问题的。我写了一篇文章,描述了确切的步骤并展示了我的代码。如果有人想看这篇文章,可以通过http://www.blackbeltcoder.com/Articles/asp/writing-a-custom-http-handler-in-asp-net 获得。
【讨论】:
以上是关于HTTP 处理程序和 IIS7 的问题的主要内容,如果未能解决你的问题,请参考以下文章
IIS7出现“HTTP 错误 404.17 - Not Found 请求的内容似乎是脚本,因而将无法由静态文件处理程序来处理。”错误-Windows-
IIS7 下报“HTTP 错误 404.3 - Not Found 由于扩展配置问题而无法提供您请求的页面。如果该页面是脚本,请添加处理程序。如果应下载文件,请添加 MIME 映射。”
Web 应用程序问题(web.config 错误)HTTP 500.19 与 IIS7.5 和 ASP.NET v2