2012-02-08 2 views
3

私たちは特定のWebサーバー(Webサーバーへの直接アクセスはなく、FTPアクセスのみ)に非常に奇妙な問題があります。ASP.NET - 不明確な404エラーの奇妙なケース

ASP.NETアプリケーションは、標準のGridViewにデータセットを表示します。 GridViewの列の1つは基本的なテンプレート列で、別のページにリダイレクトするリンクがあり、いくつかのパラメータが渡されます。

パラメータの1つはEmployeeNameです。次のページでは、このパラメータを使用してラベルを設定しています。この特定のWebサーバ(この例ではWEBSERVER1)ON

...得られたリンクがエラー404(ページが見つかりません)別のWebサーバ(この例ではWEBSERVER2)で

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

を生成します。結果のリンクがページを正しく開きます。

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番号です。彼らは正しく表示なるように

また、

+0

これは奇妙です。ページ/コードがwebserver1上で異なる可能性がありますか? 404のIISログとは何ですか? –

+0

は、この作業を行います: "https://WWW.WEBSERVER1.COM/Customer_011B.aspx?WeekEnding=1/21/2012&GUID=na&EmployeeName=Knutson-Haushalter%2Cキャスリーン&ReportToName =メアリー・ジョーEayrs&Assignment_Id = 123772" OK、それは勝ったので、コメントのフォーマットはありません。コンマを%2C – Malk

+0

相当のHTMLエスケープコードに置き換えました。「EmployeeName」でURLに表示される2つの点 - ダッシュ(実際にはハイフンでnダッシュでないことを確認します)とコンマです。カンマはURLの予約文字です。つまり、Webサーバーとサーバーの設定によっては動作する可能性がありますが、そうでない場合があります。問題かもしれない。 – JimmiTh

答えて

0

があなたのURLにparametresを配置するUrlEncodeUrlDecodeを使用して... ...私は二重引用符でリンクを囲んことに注意してください。スペースとスラッシュとコンマを使用することがわかります。スラッシュ/スペース/コンマを含むパラメタや他の無効なURL文字は、iisサーバーの1つで有効なURLフィルタによって切り捨てられたり変更されたりする可能性があります。