我写了一个很小的HttpHandler,它可以很好地在我的机器上运行。但是,一旦它被部署到我们的登台服务器,请求它给了404.我通常更喜欢在web.config中配置HttpHandlers,但这显然在服务器上不起作用:我通过创建一个仅包含的.ashx文件来修复它引用我的HttpHandler。
.ashx文件:
<% @ WebHandler class="MyNamespace.MyProject.MyHttpHandler" %>
web.config设置:
<httpHandlers>
<add verb="GET" path="myhandler.ashx" type="MyNamespace.MyProject.MyHttpHandler"/>
</httpHandlers>
我认为问题是由服务器使用“特殊”端口(888,不要问为什么)引起的。它可能是别的东西,我可以缺少什么?
为什么我在服务器上看到此行为? HttpHandler在我的本地机器上运行正常,配置只在web.config中,在这里它也是从“随机”端口提供的,即http://localhost:61229/myhandler.ashx。
答案 0 :(得分:3)
听起来好像没有找到web.config设置。
这是IIS 7吗?在这种情况下,请确保将处理程序放在&lt; system.webServer&gt;中。及其&lt;处理程序&gt;部分。
答案 1 :(得分:0)
如果您使用的是IIS7,但仍希望保留旧的IIS 6配置文件。 通过将应用程序池设置为以“经典”模式运行,处理程序将再次运行。
不推荐,但有时这是一个快速且足够好的解决方案。