web-dev-qa-db-ja.com

ASP.NET MVCおよびhttpRuntime executionTimeout

ASP.NET MVCアプリケーションのサブセクションのhttpRuntimeexecutionTimeoutを増やしたいのですが。

通常のWebアプリでは、次のものを使用できます。

<configuration>
  <location path="UploadPage.aspx">
    <httpRuntime executionTimeout="600"/>
  </location>
</configuration>

ただし、ASP.NET MVCには「フォルダー」という概念は実際にはないので、どうすればこれを実行できますか?

ASP.NET MVCパスが/Images/UploadとImagesControllerおよびUploadアクションを使用します。

42
E Rolnicki

MVCパス全体(コントローラーとアクション)を<location>タグのパス属性に含めることができます。このようなものはうまくいくはずです:

<location path="Images/Upload">
    <system.web>
        <httpRuntime executionTimeout="600" />
    </system.web>
</location>
51
Chris Hynes

Chris Hynesソリューション 機能します!パスに〜/を含めないでください。

この回答 別の方法で詳細を説明します-アクションコード内にScriptTimeoutを設定するだけです。

public ActionResult NoTimeout()
{
    HttpContext.Server.ScriptTimeout = 60 * 10; // Ten minutes..
    System.Threading.Thread.Sleep(1000 * 60 * 5); // Five minutes..
    return Content("NoTimeout complete", "text/plain"); // This will return..
}
8
Jarrod Dixon

アクションがデフォルトのコントローラにある場合、ホーム/アップロードは機能しません。アクション名を入力するだけです。

1
KevinUK

アップロードページのタイムアウトを特に長くしようとしているようです。私はpluploadと呼ばれる「チャンク」アップローダーである程度成功しました。比較的単純なMVCアクションは、アップロードのチャンクを受信するように設定でき、受信時に各チャンクを追加します。小さなチャンクでは、タイムアウトを増やす必要はありません。もちろん、いくつかのブラウザ制限があるかもしれませんが、n

http://plupload.com/

1
Greg Ogle

AsyncControllerを見てください。これを使用すると、アクションメソッドにAsyncTimeout属性を設定できるようになり、リクエストをタイムアウトできるようになります。

私を助けたリンク: http://forums.asp.net/p/1564303/3922462.aspxhttp://dariosantarelli.wordpress.com/2010/10/16/asp -net-mvc-2-handling-timeouts-in-asynchronous-controllers /

0
jeroen.verhoest