C# 尝试使用IIS 5.1访问HttpHandler时未找到页面

C# 尝试使用IIS 5.1访问HttpHandler时未找到页面,c#,.net,iis,C#,.net,Iis,问题如下: 我有一个HttpHander,它在IIS6.0中工作得非常好(它是通过Web.Config配置的) ),它会给我“找不到页面”错误,即使名称完全正确(适用于IIS 6.0) 谢谢你的提示 UPD:该问题仅适用于路径没有扩展名的情况。path=“MyHandler.myExt”工作正常。有没有办法将IIS 5.1配置为处理不带扩展的处理程序?编辑:下面是我的原始答案。我没注意到你说它在IIS 6上为你工作。。。这不是我过去的经历 我会检查您的IIS 6配置,看看是否有任何特殊的URL重

问题如下:

我有一个HttpHander,它在IIS6.0中工作得非常好(它是通过Web.Config配置的)

),它会给我“找不到页面”错误,即使名称完全正确(适用于IIS 6.0)

谢谢你的提示


UPD:该问题仅适用于路径没有扩展名的情况。path=“MyHandler.myExt”工作正常。有没有办法将IIS 5.1配置为处理不带扩展的处理程序?

编辑:下面是我的原始答案。我没注意到你说它在IIS 6上为你工作。。。这不是我过去的经历

我会检查您的IIS 6配置,看看是否有任何特殊的URL重写(或类似)设置


基本上,IIS试图找到它,就像它是一个目录一样,因为它没有文件扩展名。我相信它把没有文件扩展名的所有东西都当作一个目录来处理,并且自己处理——至少在默认情况下是这样

正如annakata在评论中所说,您可以通过IIS中的ASP.NET添加“通配符”处理。这不是我尝试过的,而且听起来很危险(就不希望出现的后果而言),但有逐步的说明

另一种选择可能是对URL进行重写(不是在ASP.NET中,而是针对IIS本身),但如果可能的话,我建议您将处理程序映射到包含文件扩展名的路径。如果使用ASP.NET尚未处理的文件扩展名,则必须将其添加到ISAPI筛选器列表中


我只知道这一切,因为我试图为我的Wave Robot API做一些非常类似的事情。您可能需要查看以了解更多信息。请特别检查对已接受答案的注释。

对于询问主机,您会犹豫不决,但鉴于缺少文件扩展名,IIS不通过ASP.NET管道推送请求的可能性是否更大?因此,再多的编码也解决不了这个问题,但将通配符处理绑定到ASP.NET将解决这个问题(尽管这是否是一个好主意尚不确定)@annakata:我想我们的意见是一致的。正如我所说,它只是试图将其视为一个目录,而不是将其传递给ASP.NET。我不知道你如何将通配符处理绑定到ASP.NET。。。当我做实验的时候我不能,但我是个新手。哈,很有可能!好吧,这是通过IIS完成的-手边没有一个,但是这个链接涵盖了IIS6的想法()安娜卡塔:介意我把它移到答案中吗?(已经这样做了;如果你想添加自己的答案,将回滚。)
   <add verb="*" path="MyHandlder" type="MyNamespace.MyHandler"/>