私は数日前からこの問題に取り組んできましたが、原因を突き止めることができませんでした。クエリ文字列が破損しています:IISによって "80"が削除されていますか?
私は、登録が必要な登録システムを持っています。アクティベーションリンクをクリックすると、サーバーに戻されるハッシュで電子メールがユーザーに送信されます。かなり基本的なもの。
http://site/activate.aspx?activationKey=26a51d9eba86c73b8f7e800c41bf55453ed3b1c4
(VS2010を実行している)私のローカルマシン上で開発しているが、これは完璧に動作します:リンクは次のようになります。ただし、サイトがライブサーバー(IIS 6)にプッシュされると、おそらくIISによってクエリ文字列がマングリングされています。クエリ文字列がコードビハインドにヒットすると、「80」の出現が取り除かれ、アクティベーションが失敗します。
私はこれがエンコード/デコードの問題かどうか疑問に思っていますが、文字は特別なものはありませんので、そうはならないと思います。
管理者または管理者でなければならないと思った人が「書き換え」を行っていますか? (おそらく、ポート番号を削除する間違った試行で...)間にプロキシサーバーはありますか?完全なリクエストがログに記録されていることをIISは何を示していますか? "80"がパス自体(クエリ文字列ではない)の一部である場合はどうなりますか?あなたはどこかでクエリ文字列を掘り下げていないと確信していますか?忘れられたハンドラー?説明されているように壊れる「標準」はありません。 –
VS2010が提供するWebサーバーでテストするのではなく、IIS自体を試してみてください。そして、デバッグのために、w3wp.exeに添付してください。 –
ちょうどIISログを掘り下げました。あなたは何かに乗っている。 ここでも、ここで元のクエリです: 'Activate.aspx activationKey = 26a51d9eba86c73b8f7e800c41bf55453ed3b1c4' そして、それはのようにIISログに現れています:?' Activate.aspx ?activationKey = 26a51d9eba86c73b8f7e0c41bf55453ed3b1c4' 「80」がなくなったことに注目してください。さて、私がLinuxの人であることを考えると(IISは私にとっては外国人です)、そのようなログに表示されていれば、それはIISに変わっていますか?言い換えれば、IISのいくつかの設定はこれを引き起こすものではありません。 – Matthew