4

ASP.NET C#Webアプリケーションは、次の環境で使用されます-.NET Framework 4-IIS 7-Windows 2008-Visual Studio 2010 .NET IDE-C#-HTTPS(SSL)ASP.NET C#Webアプリケーションは、jpgなどのさまざまなファイルをアップロードします、mp4、mp3、png、docx、txtなどをClientBinというフォルダーに追加します。ただし、アプリケーションをIIS7サーバーに展開する場合は、アプリケーションのWebユーザーにファイルのアップロードを許可する必要があります。\ IIS_IUSRSグループに、ClientBinアップロードフォルダーでの実行、読み取り、書き込み、および実行のアクセス許可を付与します。

Webユーザーは、サイズが約12MB未満のファイルをアップロードできます。

ただし、Webユーザーが約12MBを超えてアップロードすると、アップロードされるファイルはサーバーのClientBinアップロードフォルダーで0バイトになります。

Web.configには、httpRuntimeタグの次の構成があります。

<system.web>
  ...
  .....
  ........
  ..............
  <httpRuntime maxRequestLength="1048576" executionTimeout="50000"
       useFullyQualifiedRedirectUrl="false" requestLengthDiskThreshold="15360"
       minFreeThreads="8" minLocalRequestFreeThreads="4"
       appRequestQueueLimit="100" />
</system.web>

Web.configには、requestLimitsタグの次の構成があります。

<system.webServer>
  ..............
  .........................
  <security>
    <requestFiltering>
      <requestLimits maxAllowedContentLength="2000000000" />
      <fileExtensions>
        <add fileExtension=".aspx" allowed="true" />
      </fileExtensions>
    </requestFiltering>
  </security>
</system.webServer>

また、次の設定を作成して、machine.configファイルを変更するという望ましくないアプローチを取りました。

<system.web>
  <processModel responseDeadlockInterval="0:09:00"
                                  responseRestartDeadlockInterval="0:09:00" />
  .....................
  ..........................................
  .............................................................
</system.web>

また、次の手順を実行しました。イベントビューアとIISログを確認しましたが、奇妙な表示に失敗しました。

サイズが約12MB未満のファイルは、適切にアップロードされます。

ファイルはアップロードされますが、すべて0Kbになることに注意することが重要です。アップロードされるファイル名とタイプは私のデスクトップのものと同じですが、サイズは0Kbです。私のデスクトップにあるものは約75MBです。

ASP.NETとIISはエラーページをスローしません。

12MBを超えるASP.NETWebアプリケーションにアップロードされたファイルが0MBとして表示されるのはなぜですか?

4

1 に答える 1

5

requestLengthDiskThreshold一致するように増やしてみてくださいmaxRequestLength

<configuration>
    <system.web>
        <!-- maxRequestLength and requestLengthDiskThreshold is in Kilobytes-->
        <httpRuntime maxRequestLength="204800" requestLengthDiskThreshold="204800" />
    </system.web>
    <system.webServer>
        <security>
            <requestFiltering>
                <!-- maxAllowedContentLength is in Bytes not Kilobytes -->
                <requestLimits maxAllowedContentLength="204800000" />
            </requestFiltering>
        </security>
    </system.webServer>
</configuration>

また、 Telerik RadUploadモジュールなどのより包括的なASP.NETアップロードコントロールを使用してみましたか?問題が解決するかどうかを確認するための無料トライアルとして利用できます。

于 2012-11-30T21:00:53.407 に答える