サイトを古いwin2000サーバーから新しいwin200864ビットサーバーにアップグレードしました。
このサイトは、XMLデータのPOSTを介したデスクトップアプリケーションからの画像のアップロードを受け入れます。画像は、xml要素の1つにbase64でエンコードされています。 POSTデータを受信するページはClassicASPです。
新しいサーバーに移動したため、正常にアップロードできるのは小さな画像のみです。
最大許容コンテンツ長は30000000バイトに設定されています。したがって、30MB弱でPOSTできるはずです。
1MB以上のエンコードされた画像のxmlをPOSTできません。
サーバー側でXMLをロードするときにエラーが発生します(これはVB dllを使用して発生します)。
古いWindows2000サーバーではファイルサイズが大きいという問題は発生せず、このコードは変更されていません。
私が得るエラーは次のとおりです。
不特定のエラー
エラーコード:-2147467259
ファイルの位置:262165
行:3541
ライン位置:56
ソーステキスト:cvr92x0lnpkUw/0gfuvKqXTYYptY8 + 3q74Jhls7eSfHnfunql4J026mu
URL:
つまり、POSTがXMLの途中で途切れているように見えます。
IISの最大許容コンテンツ長とは別に設定するアイデア-リクエストフィルタリングの下のIISのサイトに設定しています。
POSTエラーは即座に発生しますか、それとも指定された時間が経過した後に発生しますか?、「maxRequestLength」を追加する必要があると思います。これをweb.configの「system.web」に追加してみてください-
<system.web><httpRuntime executionTimeout="999999" maxRequestLength="2097151"
IIS7のデフォルトのアップロード上限は28.61MBです。このファイルを開く必要があります:
C:\Windows\System32\inetsrv\config\applicationHost.config
の中に <requestFiltering>
セクション次を追加します。
<requestLimits maxAllowedContentLength=”[length in bytes]” />
100MBの場合、たとえば104857600に設定できます。
おそらく、IIS構成は、大きなペイロードを許可するように変更されていません;)web.configの関連するすべての設定を確認してください。