我正在尝试设置一个精简的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。
我之前实际上已经这样做了,但我似乎无法完全记住或在网上找到我的工作方式。
我现在基本上没有想法 - 有人吗?
答案 0 :(得分:0)
我根据@Alexei Levenkov的建议添加了runAllManagedModulesForAllRequests。虽然我记得肯定需要这样做,但它没有立即解决它。经过多次调整后我发现IIS设置了:
resourceType="Either"
处理程序上的。我测试过将它更改为File,问题是针对文件类型URL修复的,但当然不是文件夹“样式”的。将其更改为:
resourceType="Unspecified"
修复了所有网址的问题。