2013-01-25 34 views
0

人们正在外部链接到我们的网站,通过传递'错误参数',实质上是打破了他们链接到的页面。他们通过提供URL这样做的:如何忽略IIS中的错误查询字符串?

http://domain.com/page.htm?ke&y=value

我们会在参数名称注意符号。这将导致IIS失败,出现以下错误:

Failed to Execute URL.

at System.Web.Hosting.ISAPIWorkerRequestInProcForIIS6.BeginExecuteUrl(

我想防止有人从具有功率打破我们的网站,一,二希望用户能够访问他们甚至想要的网页如果链接提供商犯了错误。

如何配置IIS执行URL而忽略查询字符串错误?

回答

1

碰巧,这似乎是我们的解决方案的一个怪癖,它最初的目标是.NET 1.1,后来升级到.NET 2.0; .NET 1.1显然在全局级别(在machine.config中)注册HttpHandler,它配置StaticFileHandler以处理标准html(* .htm)文件,而.NET 2.0改变了这一点。因此,升级时,如果您没有在本地应用程序的配置中注册处理程序,那么在部署时,IIS将尝试处理* .htm文件,并在某些情况下死亡(在问题中描述的情况下) 。

然后在溶液中,以添加到您的配置的httpHandlers部分:

<add verb="*" path="*.htm" type="System.Web.StaticFileHandler" /> 

我说似乎因为自修复这个我从来没有时间投资再现和记录。

+0

+1:很好的见解 –