Url 无效URI:无法通过自定义重写IHttpModule解析主机名
这是我们在网站上偶尔看到的一个奇怪错误 这个错误的奇怪之处在于它被抛出到我们的URL重写IHttpModule中。这条线是:Url 无效URI:无法通过自定义重写IHttpModule解析主机名,url,url-rewriting,hostname,ihttpmodule,Url,Url Rewriting,Hostname,Ihttpmodule,这是我们在网站上偶尔看到的一个奇怪错误 这个错误的奇怪之处在于它被抛出到我们的URL重写IHttpModule中。这条线是: var host = context.Request.Url.Host; 如果在抛出此异常时记录context.Request.Url,则它是一个空字符串 此重写方法仅通过我们的global.asax文件调用: void Context_AuthorizeRequest(object sender, EventArgs e) => URLRewritin
var host = context.Request.Url.Host;
如果在抛出此异常时记录context.Request.Url
,则它是一个空字符串
此重写方法仅通过我们的global.asax
文件调用:
void Context_AuthorizeRequest(object sender, EventArgs e)
=> URLRewriting.Process();
什么可能导致Request.Url.Host
为空
作为补充说明,我们在网站上发现了许多其他错误,这表明有人正在使用自动化工具扫描我们的网站,以发现弱点和漏洞。我有一种感觉,这可能在某种程度上是相关的,尽管我不清楚为什么Request.Url.Host
会是空的
第二,最后一个请求的用户IP是一个大学网络(对于我们的网站来说并不罕见)。我将重点关注
context.request.Url
是空的这一事实
您是否有任何其他IHttpModule
s对管道中前面的HttpContext
执行某些操作
是否可能存在相对HTTP请求,如所述
当主机和URL为空时,您是否了解有关请求的更多信息?是否是重写模块无法映射的无效URL? 根据,如果重写映射没有映射请求的规则,那么默认情况下将得到一个空字符串
如果您捕获了导致错误的原始请求,您可能能够复制它并逐步通过代码验证此理论。整个解决方案(重写器)中只有一个
IHttpModule
。我将尝试添加更多日志记录。