我有几个 ASP.NET MVC 网站在启用 UrlScan 3.1 的 IIS 8 上运行。我还在这些网站上启用了一些日志记录,它们捕获未处理的异常并将它们写入数据库中的日志表。
我发现这些网站有很多例外情况:
System.Web.HttpException
The controller for path '/Rejected-By-UrlScan' was not found or does not implement IController.
通过查看我自己的日志,我可以看到生成此错误的请求 URL 类似于以下内容(实际域替换为示例):
/Rejected-By-UrlScan?~//https://mywebsite.com/login/login/?aspxerrorpath=/Rejected-By-UrlScan
看到我不知道是什么真正触发了这个请求,所以我查看了 UrlScan 生成的日志文件;我可以看到一些 URL 可能被拒绝的很多原因,例如:
2014-02-11 02:42:29 119.147.146.189 4 GET //https://mywebsite.com/login/login Rejected extension+not+allowed file+extension .com -
2014-02-11 02:42:32 119.147.146.189 4 GET //https://mywebsite.com/login/login/?aspxerrorpath=/Rejected-By-UrlScan Rejected URL+contains+dot+in+path URL - -
2014-02-11 02:42:37 119.147.146.189 4 GET //https://mywebsite.com/scripts/jquery-1.9.1.min.js Rejected URL+contains+dot+in+path URL - -
2014-02-11 08:24:19 79.122.154.178 6 OPTIONS /Content/Styles/ Rejected verb+not+allowed HTTP+method - -
从这些日志文件中我不明白的是,如果 URL 被拒绝,为什么我的网站会继续运行?
因此,基于此,我有两个问题:
- 我应该担心这些被拒绝的 URL 吗?我知道 UrlScan 可以配置为允许/拒绝某些事情,但如果我能提供帮助,我不想过多地处理它。
- 如果我应该允许 UrlScan 按配置工作,有没有办法阻止 MVC 网站生成这些路由错误?它们目前占用了我的很多日志表,我不认为它们是我应该担心的严重错误。例如,我知道您可以忽略路由,但我不确定我需要的语法。