URL を介して ASP.Net Web サービスに大きなパケットを送信する必要があります。特定の理由で POST を使用できないため、XML パッケージを URL エンコードし、サービスに対して GET 要求を行います。
http://service.example.com/collect?content=AAAAAAAA...(+5000 characters)
サービスは次のように応答します
エラー 404 - ファイルまたはディレクトリが見つかりません。
max-content-length-exceeded のエラー コードがないことを読んだので、IIS はこの 404 エラーを返します。そのことを知って、次のように構成を変更して、大きなリクエストを許可しました。
変更されたクエリ文字列の長さ、URL の最大長、リクエストの最大長、無効化された検証
<httpRuntime
requestValidationMode="2.0"
maxQueryStringLength="262144000"
maxUrlLength="262144000"
maxRequestLength="262144000" />
...
<pages validateRequest="false" />
...
<system.webServer>
<validation validateIntegratedModeConfiguration="false" />
<security>
<requestFiltering>
<requestLimits maxAllowedContentLength="262144000" />
</requestFiltering>
</security>
</system.webServer>
それでも同じエラーが表示されます。非常に大きい/長い URL を使用して Web サービスにリクエストを送信するにはどうすればよいですか?
更新 1
画像はお送りしておりません。内容は次のようなものです。
<packet date="1243235246436">
<param type="1" id="45">
5
</param>
</packet>
改行文字と URL エンコードなし。
更新 2
IIS Request Filtering で制限をより大きな数に設定した後、404 は次のように変換されます。
HTTP エラー 400。要求ヘッダーのサイズが長すぎます。
これは、現在ヘッダーのサイズが大きすぎるためです。MaxFieldLength および MaxRequestBytes レジストリ エントリを追加することにより、この記事の指示に従おうとしましたが、まだ URL の長さが 16k に制限されています。1,000,000 の長い URL を送信できるようにするにはどうすればよいですか? これは可能ですか?少なくとも 65k の長い URL を送信するにはどうすればよいですか? これはヘッダーの最大長ですが、私の設定は考慮されていません。