我想在我的应用程序中增加特定控制器操作的请求超时.我知道我可以在web.config中为整个应用程序执行此操作,但我宁愿在这一个操作上更改它.
Web.config示例:
<system.web>
<httpRuntime executionTimeout="1000" />
</system.web>
Run Code Online (Sandbox Code Playgroud)
我该怎么做?
我在我们的生产网站上看到这个以及我设置的一个小测试网站来测试这个...
基本上,似乎mvc处理的请求永远不会超时.我在web.config中设置了executionTimeout并关闭了调试模式.然后我为常规的aspx页面和mvc页面添加了一个无限循环的thread.sleeps(循环在mvc页面的控制器中).aspx页面可靠地超时(HttpException(0x80004005):Request time out out.),但是mvc页面只是永远旋转而没有超时.
是否有单独的mvc设置(我看过但没有找到它们)?默认情况下mvc请求是否超时?
任何有关这方面的帮助将不胜感激.我很乐意通过电子邮件发送我的小型测试网站,如果它可以帮助任何人.
编辑:我正在使用MVC3.
我的web.config的内容:
<?xml version="1.0"?>
<!--
For more information on how to configure your ASP.NET application, please visit
http://go.microsoft.com/fwlink/?LinkId=169433
-->
<configuration>
<connectionStrings>
<add name="ApplicationServices"
connectionString="data source=.\SQLEXPRESS;Integrated Security=SSPI;AttachDBFilename=|DataDirectory|\aspnetdb.mdf;User Instance=true"
providerName="System.Data.SqlClient" />
</connectionStrings>
<appSettings>
<add key="webpages:Enabled" value="true" />
</appSettings>
<system.web>
<httpRuntime maxRequestLength="16384" executionTimeout="30" />
<compilation debug="false" targetFramework="4.0">
<assemblies>
<add assembly="System.Web.Abstractions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
<add assembly="System.Web.Helpers, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
<add assembly="System.Web.Routing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
<add assembly="System.Web.Mvc, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
<add assembly="System.Web.WebPages, Version=1.0.0.0, Culture=neutral, …Run Code Online (Sandbox Code Playgroud) 我想为maxRequestLength设置多个设置 - 文件大小上传限制(例如,一个用于文件/新建,另一个用于图片/新建).我的所有操作都采用其他参数(例如/ File/New?folderId = 234).
单个设置按预期工作:
<httpRuntime executionTimeout="60" maxRequestLength="1024" />
Run Code Online (Sandbox Code Playgroud)
我尝试在根web.config中有2个设置和2个位置部分,但没有任何成功.我不确定在"路径"中写什么 - 视图的物理aspx页面,或控制器+动作......但是,似乎没有任何工作.
<location path="/File/">
<system.web>
<httpRuntime executionTimeout="60" maxRequestLength="4096" />
</system.web>
</location>
<location path="/Picture/">
<system.web>
<httpRuntime executionTimeout="60" maxRequestLength="1024" />
</system.web>
</location>
Run Code Online (Sandbox Code Playgroud)
我试图将另一个web.config放在一个特定的视图文件夹中(例如/ Views/Picture/...),就像它在经典的Webform ASP.NET中一样,但是这似乎没有做到这一点......
<location path="">
<system.web>
<httpRuntime executionTimeout="60" maxRequestLength="1024" />
</system.web>
</location>
Run Code Online (Sandbox Code Playgroud)
无论我做什么,只应用httpRuntime.maxRequestLength的一个值 - 在(root)web.config ... system.web中.
我将有一个ASP.net页面,它创建一些Excel表格并将它们发送给用户.问题是,有时我会得到Http超时,大概是因为Request运行的时间比executionTimeout长(每个默认值为110秒).
我只是想知道我的选择是什么来防止这种情况,而不想一般增加executionTimeout web.config?
在PHP中,set_time_limit存在可以在函数中使用以延长其寿命,但我在C#/ ASP.net中没有看到类似的东西?
你如何处理ASP.net中的长期运行功能?