Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/309.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 应用程序池标识(.net framework 4.0)出现响应超时异常,但网络服务(frame work 2.0)工作正常_C#_Asp.net_Vb.net_Iis_Iis 7.5 - Fatal编程技术网

C# 应用程序池标识(.net framework 4.0)出现响应超时异常,但网络服务(frame work 2.0)工作正常

C# 应用程序池标识(.net framework 4.0)出现响应超时异常,但网络服务(frame work 2.0)工作正常,c#,asp.net,vb.net,iis,iis-7.5,C#,Asp.net,Vb.net,Iis,Iis 7.5,我们将网站的框架从.NET2.0更改为4.0。我们有一个应用程序池,在.NET2.0的“网络服务”下运行。我们正在使用.net 4.0迁移到在“应用程序池标识”下运行的应用程序池。这两个应用程序池与IIS 7.5位于同一服务器中 迁移之后,我们经常遇到请求超时异常。在配置中添加以下部分修复了该问题 <httpRuntime executionTimeout="600"/> <compilation debug="false"/> 你能解释一下这个超时异常的原因吗?

我们将网站的框架从.NET2.0更改为4.0。我们有一个应用程序池,在.NET2.0的“网络服务”下运行。我们正在使用.net 4.0迁移到在“应用程序池标识”下运行的应用程序池。这两个应用程序池与IIS 7.5位于同一服务器中

迁移之后,我们经常遇到请求超时异常。在配置中添加以下部分修复了该问题

<httpRuntime executionTimeout="600"/> 
<compilation debug="false"/>

你能解释一下这个超时异常的原因吗?为什么.net 4.0“应用程序池标识”中现在需要这样做?为什么.NET 2.0“网络服务”应用程序池在没有此段的情况下工作

虽然我们在配置中有并且仍然存在下面的部分

<compilation debug="true" strict="false" explicit="true"> 

我们没有

<httpRuntime executionTimeout="600"/>


“网络服务”和“应用程序池标识”具有完全不同的权限。你确定你不仅仅是碰到了一个需要更多时间才能解决的安全问题吗;您将获得一个执行超时-这意味着您的代码执行时间太长。其他人则评论说使用调试代码会比较慢,但对于正常的HTTP端点代码来说,这只需要几分钟。我认为超时可能是因为安全协商。尝试在IIS管理器中将您的应用程序池标识更改回网络服务,看看您的问题是否消失。

网络服务和应用程序池标识具有完全不同的权限。你确定你不仅仅是碰到了一个需要更多时间才能解决的安全问题吗;您将获得一个执行超时-这意味着您的代码执行时间太长。其他人则评论说使用调试代码会比较慢,但对于正常的HTTP端点代码来说,这只需要几分钟。我认为超时可能是因为安全协商。尝试在IIS管理器中将应用程序池标识更改回网络服务,看看问题是否消失。

是否尝试增加超时值..?2.0下的executionTimeout默认值为90秒,4.0下的executionTimeout默认值为110秒,因此这并不能解释4.0下的更多超时。但是,如果在任何一种环境下使用debug=true进行编译,执行时间往往会更长。@MethodMan,是的,我这样做了,现在运行正常。但是,我需要向我的上级管理层解释我们在此修复之前遇到的异常。@EricJ.,即使debug=true,我们也会遇到响应超时异常。我们更改了debug=false并添加了executiontimeout来修复超时异常。看一下链接,我认为它与框架的2.0版本有关,而与一些过时的dll或功能有关,这些功能在4.0中已被弃用,或者甚至可能已更新。看一下异常部分,您是否尝试过增加超时值2.0下的executionTimeout默认值为90秒,4.0下的executionTimeout默认值为110秒,因此这并不能解释4.0下的更多超时。但是,如果在任何一种环境下使用debug=true进行编译,执行时间往往会更长。@MethodMan,是的,我这样做了,现在运行正常。但是,我需要向我的上级管理层解释我们在此修复之前遇到的异常。@EricJ.,即使debug=true,我们也会遇到响应超时异常。我们更改了debug=false并添加了executiontimeout来修复超时异常。看一下链接,我认为它与框架的2.0版本有关,而与一些过时的dll或功能有关,这些功能在4.0中已被弃用,甚至可能已更新。看一下异常部分,我相信只有以下更改是在web中进行的配置,并修复了该问题。在.NET3中,这个默认值是110秒,在.NET1.0和1.1中是90秒。净4及以上保持在110秒。因此,框架没有太大变化-因此您需要600秒的超时(这比以前默认的110秒要多得多)表明设置中存在问题-您还没有真正回答为什么现在需要这么长的超时(这意味着您的代码比以前运行得慢)在抛出错误之前,您只需等待更长的时间。你提到的唯一其他变化是安全性,所以。。。你的慢代码可能与安全性有关。我相信只有以下更改是在web配置中进行的,并且它解决了这个问题。在.NET3中,这个默认值是110秒,在.NET1.0和1.1中是90秒。净4及以上保持在110秒。因此,框架没有太大变化-因此您需要600秒的超时(这比以前默认的110秒要多得多)表明设置中存在问题-您还没有真正回答为什么现在需要这么长的超时(这意味着您的代码比以前运行得慢)在抛出错误之前,您只需等待更长的时间。你提到的唯一其他变化是安全性,所以。。。您的慢代码可能与安全性有关。