如何减少asp.net中的响应超时?

如何减少asp.net中的响应超时?,asp.net,web-config,httpresponse,Asp.net,Web Config,Httpresponse,我有一些http客户机,有时需要很长时间才能完成请求,我想在特定的时间长度(比如5秒)后将它们切断 我知道在web.config中可以将executionTimeout设置为一个值,但是当我设置它时,api似乎并不遵守它 为了测试这一点,我正在创建一个控制器,其中Thread.Sleep设置的值大于我在web.config中设置的值,但响应没有被切断。您可以在web.config中设置此值。例如,要更改一个特定页面的超时,请执行以下操作: <location path="somefile.

我有一些http客户机,有时需要很长时间才能完成请求,我想在特定的时间长度(比如5秒)后将它们切断

我知道在web.config中可以将executionTimeout设置为一个值,但是当我设置它时,api似乎并不遵守它


为了测试这一点,我正在创建一个控制器,其中
Thread.Sleep
设置的值大于我在web.config中设置的值,但响应没有被切断。

您可以在web.config中设置此值。例如,要更改一个特定页面的超时,请执行以下操作:

<location path="somefile.aspx">
    <system.web>
        <httpRuntime executionTimeout="180"/>
    </system.web>
</location>


时间以秒为单位。

通常,第一件也是最简单的事情就是更改配置/system.web/sessionState@timeout将值设置为“90”之类的值。这意味着您希望将用户的会话保持到90分钟的空闲时间

web.config中的更改:

... ...

这里有几个问题联系在一起: 应用程序池的工作进程默认空闲超时也设置为20分钟 存储会话状态的默认模式是在IIS进程中

应用程序池空闲超时

通过单击应用程序分配到的应用程序池上的高级设置(IIS 7.5),可以找到应用程序池的设置。

确保此值至少设置为会话超时,以确保所有会话在整个会话超时期间保持不变。 这两个值相互依赖的原因是会话信息实际上存储在应用程序池的工作进程中。也就是说,如果工作进程因任何原因关闭或终止,会话信息将丢失

会话存储模式 存储会话信息的模式有:

  • InProc(或进程中)—默认值—在IIS工作进程内存储会话信息
  • StateServer–在单独的进程(ASP.NET状态服务)中存储会话信息
  • SQLServer–将会话信息存储在SQL数据库中

工作进程上容易丢失会话信息的唯一模式是当状态存储在工作进程中时。StateServer和SQLServer模式都不受工作进程重置的影响。同样,当需要在多台IIS服务器上共享会话状态时,StateServer和SQLServer模式是唯一的选项。

尽管我还没有做到开箱即用,根据MSDN文档,我已经成功地使用了

,它仅在调试设置为false时才适用。这是MSDN文档的链接,您也是这样做的。我正在寻找限制响应超时的方法,而不是会话是否能够成功?不是这样。然而,我已经成功地使用了波利图书馆。我现在要补充一个答案