ASP.NET-出现莫名其妙的404错误的奇怪情况



我们在一个特定的web服务器上遇到了一个非常奇怪的问题(我们无法直接访问web服务器,只能通过FTP访问)。

我们的ASP.NET应用程序将数据集显示到标准GridView中。GridView中的一列是一个基本模板列,其中一个链接重定向到另一个页面,只传递一些参数。

其中一个参数是EmployeeName-下一页使用该参数设置标签。

在这个特定的web服务器上(本例中为WEBSERVER1)。。。结果链接生成错误404(未找到页面)

https://WWW.WEBSERVER1.COM/Customer_011B.aspx?WeekEnding=1/21/2012&GUID=n.a.&EmployeeName=Knutson-Haushalter, Kathleen&ReportToName=Mary Jo Eayrs&Assignment_Id=123772

在另一台web服务器(本例中为WEBSERVER2)上。。。生成的链接将正确打开页面。

http://WWW.WEBSERVER2.COM/Customer_011B.aspx?WeekEnding=1/21/2012&GUID=n.a.&EmployeeName=Knutson-Haushalter, Kathleen&ReportToName=Mary Jo Eayrs&Assignment_Id=123772

(不幸的是,上面的链接没有正确呈现

是的,我知道WEBSERVER1是在SSL下运行的,但不确定为什么这会有所不同。

现在,我们已经验证了Customer_011B.aspx页面确实存在于WEBSERVER1上。

谜题来了:

如果我们只删除EmployeeName参数,则页面将正确显示。所有数据库操作都正确执行,等等。唯一的"问题"是EmployeeName没有在目标标签中报告。

换句话说:

这不起作用,我们得到的只是错误404

https://WWW.WEBSERVER1.COM/Customer_011B.aspx?WeekEnding=1/21/2012&GUID=n.a.&EmployeeName=Knutson-Haushalter, Kathleen&ReportToName=Mary Jo Eayrs&Assignment_Id=123772

这确实有效,我们进入页面,检索所有需要的数据。

https://WWW.WEBSERVER1.COM/Customer_011B.aspx?WeekEnding=1/21/2012&GUID=n.a.&ReportToName=Mary Jo Eayrs&Assignment_Id=123772

如果您想知道,我们的数据访问层唯一需要的参数是Assignment_Id编号。

另外,请注意,我用双引号附上了链接。。。这样他们才能正确地渲染。。。

使用UrlEncodeUrlDecode将参数放置在url上。我看到你用空格、斜线和逗号。带有斜线/空格/逗号和其他无效url字符的参数可能会被其中一个iis服务器上启用的url筛选器剪切或更改。

最新更新