C# 如何使用IHttpHandler处理所有请求?
我试图建立一个精简的web服务器,将所有URL请求传递给一个IHttpHandler,而不是尝试将URL与服务器的文件结构匹配 我有IHttpHandler和一些自定义模块,当我直接进入我的域时,它们会像预期的那样响应,但是如果我通过以下方式访问站点:C# 如何使用IHttpHandler处理所有请求?,c#,asp.net,iis,C#,Asp.net,Iis,我试图建立一个精简的web服务器,将所有URL请求传递给一个IHttpHandler,而不是尝试将URL与服务器的文件结构匹配 我有IHttpHandler和一些自定义模块,当我直接进入我的域时,它们会像预期的那样响应,但是如果我通过以下方式访问站点: http://mysite/some/random/url 我得到一个404文件未找到错误 我假设移除其中一个模块可能会涵盖: <remove name="UrlRoutingModule-4.0" />
http://mysite/some/random/url
我得到一个404文件未找到错误
我假设移除其中一个模块可能会涵盖:
<remove name="UrlRoutingModule-4.0" />
<remove name="UrlMappingsModule" />
<remove name="FileAuthorization" />
<remove name="UrlAuthorization" />
但IIS仍在尝试将URL与服务器文件结构相匹配。我已经删除了所有我没有使用的模块,它仍然返回404
我以前确实做过这件事,但我似乎记不清或者在网上找不到我是如何让它工作的
我现在基本上没有想法了-有人吗?我根据@Alexei Levenkov的建议添加了RunAllManagedModules集合请求。虽然我记得肯定需要这样做,但它并没有立即解决问题。在反复摆弄之后,我发现IIS设置了:
resourceType="Either"
在处理器上。我测试了将其更改为文件,解决了文件类型URL的问题,但当然不是文件夹类型的URL。将其更改为:
resourceType="Unspecified"
修复了所有URL的问题。runAllManagedModulesForAllRequests是问题的一个重要部分。啊,是的,谢谢-我记得现在我肯定必须使用之前的方法才能让它工作。但是,单独使用它并不能解决问题。如果你想要一个真正精简的Web服务器,你应该研究。。。