私たちは特定の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番号です。彼らは正しく表示なるように
また、
これは奇妙です。ページ/コードがwebserver1上で異なる可能性がありますか? 404のIISログとは何ですか? –
は、この作業を行います: "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
相当のHTMLエスケープコードに置き換えました。「EmployeeName」でURLに表示される2つの点 - ダッシュ(実際にはハイフンでnダッシュでないことを確認します)とコンマです。カンマはURLの予約文字です。つまり、Webサーバーとサーバーの設定によっては動作する可能性がありますが、そうでない場合があります。問題かもしれない。 – JimmiTh