Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/271.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何使用IHttpHandler处理所有请求?_C#_Asp.net_Iis - Fatal编程技术网

C# 如何使用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" />

我试图建立一个精简的web服务器,将所有URL请求传递给一个IHttpHandler,而不是尝试将URL与服务器的文件结构匹配

我有IHttpHandler和一些自定义模块,当我直接进入我的域时,它们会像预期的那样响应,但是如果我通过以下方式访问站点:

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服务器,你应该研究。。。