ASP.NET - 奇怪的404错误的奇怪案例

时间:2012-02-08 20:09:07

标签: asp.net

我们在一个特定的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下运行 - 但我不确定为什么会产生影响。

现在,我们已经确认WEBSERVER1上确实存在Customer_011B.aspx页面。

这就是谜题:

如果我们只删除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编号。

另外,请注意我用双引号括起链接......这样它们就能正确呈现......

1 个答案:

答案 0 :(得分:0)

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