iis executionServer和Server.ScriptServer的区别

wbrvyc0a  于 11个月前  发布在  其他
关注(0)|答案(4)|浏览(89)

我有一个aspx页面,其中包含的代码可能需要5分钟或更长时间在服务器上执行。所以我需要延长请求超时之前的时间。
把这个放在网站的web.config中有什么区别:

<location path="~/MyPage.aspx">
    <system.web>
      <httpRuntime executionTimeout="600"/>      
    </system.web>    
  </location>

字符串
并将其放在页面后面的代码中:

protected void Page_Load(object sender, EventArgs e)
{
Page.Server.ScriptTimeout = 600;
}

dzhpxtsq

dzhpxtsq1#

至于ASP.NET的<httpRuntime>配置中的executionTimeout设置不起作用的问题。关于这个属性的文档确实不是很清楚。造成这个问题的原因有以下几个:
1.只有当我们在 web.config 中将“debug”设置为false时,此设置才会生效,如:

<compilation defaultLanguage="c#" debug="false" />

字符串
当设置为debug="true"模式时,运行时将忽略超时设置。
1.即使我们设置了debug="false",当值很小时,executionTimeout仍然会有一定的延迟。实际上,我们建议不要将超时设置为小于1.5分钟。当我们将超时设置为小于1分钟时,延迟将从5秒到15秒不等。例如,如果我们设置executionTimeout="5",页面超时可能需要大约15秒。
Server.ScriptTimeout属性是经典ASP中使用的COM接口。ASP.NET的executionTimeout是ASP.NET中ScriptTimeout的替代品,因此我们不再需要在ASP.NET中使用脚本语言。
另外,至于让脚本总是在2秒后终止,恐怕在ASP.NET的运行时设置中没有办法,ASP.NET的运行时请求处理管理达不到这个精度,2秒太小了,可能会导致性能很差,无法监控这么小的间隔。
如果我们确实需要让某个处理超时,我们可以考虑将超时逻辑放在上面的应用程序代码级别。例如,如果我们正在执行SqlCommand,我们可以设置SqlCommand的执行超时。或者如果我们正在页面代码中执行一个xmlc调用,我们可以为xmlc调用设置超时。

vuktfyat

vuktfyat2#

从这个页面,一些官方信息:https://msdn.microsoft.com/en-us/library/system.web.httpserverutility.scripttimeout%28v=vs.110%29.aspx
可以通过设置元素的executionsign属性,在Web.config文件中设置Scriptdate属性。使用Scriptdate属性以编程方式设置超时优先于Web.config设置。
我只是想,注意到微软说“executionsocket”和“Scriptocket”是同一个属性可能是有益的。

nkkqxpd9

nkkqxpd93#

执行命令

可选TimeSpan属性。指定在ASP.NET自动关闭请求之前允许执行的最大秒数。仅当compilation元素中的debug属性为False时,此超时值才适用。为了帮助防止在调试时关闭应用程序,请不要将此超时值设置为较大的值。默认值为“00:01:50”(110秒)。

脚本

可以使用AspScriptSeconds元数据属性为Web服务或Web服务器设置默认ScriptSeconds。ScriptSeconds属性不能设置为小于元数据中指定的值。例如,如果NumSeconds设置为10,而元数据设置包含默认值90秒,则脚本将在90秒后超时。但是,如果NumSeconds设置为100,脚本将在100秒后超时。

mbzjlibv

mbzjlibv4#

关键的区别是一个是针对整个网站,另一个你可以只在页面级别设置。
它们是相同的设置。大多数情况下使用web.config。如果您需要对特定页面执行较长时间(可能会运行较长的报表或批处理作业),请在页面级别设置此设置:

// set page timeout to 40 minutes
Page.Server.ScriptTimeout = 2400;

字符串

相关问题