.NET 3.5でカスタム404 CMSシステムを構築しましたが、データを転記するのはIIS 5.1および6.0でローカルに機能しますが、本番IIS 6.0サーバーでは機能しません。私はIIS 6.0のサイト設定項目を項目ごとに比較しました。これらはほとんど同じで、唯一の違いは問題ありません。IIS 6.0のカスタム404ページから送信するとPOSTデータが失われるのはなぜですか?
私はフォームがそれぞれ "http://domain/folder/folder/page.resource"にPOSTされていることを確認しました(コードはSVNにあります)。また、送信時にリダイレクトが発生しないことを確認しました。サーバー別のデバッグ情報:
IIS 5.1 (my computer, works):
ServerVariables["REQUEST_METHOD"]="POST"
Request.TotalBytes = 1600
Request.QueryString.Count = 1 (NOTE: contains "404;http://domain:80/folder/folder/page.resource" in each case)
Request.Form.Count = 109
IIS 6.0 (test server, works):
ServerVariables["REQUEST_METHOD"]="GET" (NOTE: IIS 6.0 reads this as "GET" instead of "POST")
Request.TotalBytes = 1600
Request.QueryString.Count = 1
Request.Form.Count = 109
IIS 6.0 (production server, does not work):
ServerVariables["REQUEST_METHOD"]="GET"
Request.TotalBytes = 0 (NOTE: should be ~1600)
Request.QueryString.Count = 1
Request.Form.Count = 0 (NOTE: should be 109)
誰にでもアイデアはありますか?私はPOSTデータがIIS 7.0で404ページではなく、6.0では送信されていないことを読んでいます。 Iセットアップ、中.resource拡張子IIS 5.1の場合のみ
<form id="GolfRegistration" name="GolfRegistration" method="POST" action="/folder/folder/page.resource" onSubmit="return CalculateAmount();">
<input type="button" value="Submit" onClick="if(ValidateInput()){submit(GolfRegistration);}">
</form>
「IIS>ウェブサイト> [プロパティ]> [ホームディレクトリ]タブ> [設定]ボタン> [追加]」GETで動作するように、HEAD、および:私のフォームは、このフォーマットであります役職。これにより、送信時に405エラーが発生することが防止されます。
編集:POSTをGETに変更し、3つのケースすべてでデータを正しく送信したため、フォームの問題ではありません。残念ながら、私は変数を渡すことはできません(109があります)querystring。
なぜ "c"タグですか? – BobbyShaftoe