Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/30.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
Asp.net IIS Express为每个请求加载和卸载模块_Asp.net_Iis_Visual Studio 2013_Web Essentials_Mapped Drive - Fatal编程技术网

Asp.net IIS Express为每个请求加载和卸载模块

Asp.net IIS Express为每个请求加载和卸载模块,asp.net,iis,visual-studio-2013,web-essentials,mapped-drive,Asp.net,Iis,Visual Studio 2013,Web Essentials,Mapped Drive,我们有一个ASP.NET项目在调试时使用IIS Express。在启动VS2013、加载解决方案、构建解决方案并以调试模式启动web应用程序之后,输出窗口将列出一组加载和卸载的DLL。经过一点搜索,我发现IIS Express会为每个请求重建站点。以下是输出窗口的一小部分: 'iisexpress.exe' (CLR v4.0.30319: /LM/W3SVC/2/ROOT-14-130719418943209850): Loaded 'C:\WINDOWS\Microsoft.Net\asse

我们有一个ASP.NET项目在调试时使用IIS Express。在启动VS2013、加载解决方案、构建解决方案并以调试模式启动web应用程序之后,输出窗口将列出一组加载和卸载的DLL。经过一点搜索,我发现IIS Express会为每个请求重建站点。以下是输出窗口的一小部分:

'iisexpress.exe' (CLR v4.0.30319: /LM/W3SVC/2/ROOT-14-130719418943209850): Loaded 'C:\WINDOWS\Microsoft.Net\assembly\GAC_MSIL\System.Web.Entity\v4.0_4.0.0.0__b77a5c561934e089\System.Web.Entity.dll'. Skipped loading symbols. Module is optimized and the debugger option 'Just My Code' is enabled.
'iisexpress.exe' (CLR v4.0.30319: /LM/W3SVC/2/ROOT-14-130719418943209850): Loaded 'C:\Users\ca0ssnc\AppData\Local\Temp\Temporary ASP.NET Files\vs\f3da8155\99ebd29d\App_Web_dqpvaqg5.dll'. 
'iisexpress.exe' (CLR v4.0.30319: /LM/W3SVC/2/ROOT-14-130719418943209850): Loaded 'C:\Users\ca0ssnc\AppData\Local\Temp\Temporary ASP.NET Files\vs\f3da8155\99ebd29d\App_Web_global.aspx.cdcab7d2.bocgg9o6.dll'. 
'iisexpress.exe' (CLR v4.0.30319: /LM/W3SVC/2/ROOT-14-130719418943209850): Loaded 'C:\Users\ca0ssnc\AppData\Local\Temp\Temporary ASP.NET Files\vs\f3da8155\99ebd29d\App_Web_global.aspx.cdcab7d2.kvvdlbnf.dll'. 
'iisexpress.exe' (CLR v4.0.30319: Domain 15): Unloaded 'C:\WINDOWS\Microsoft.Net\assembly\GAC_32\mscorlib\v4.0_4.0.0.0__b77a5c561934e089\mscorlib.dll'
'iisexpress.exe' (CLR v4.0.30319: /LM/W3SVC/2/ROOT-14-130719418943209850): Unloaded 'C:\WINDOWS\Microsoft.Net\assembly\GAC_32\System.Web\v4.0_4.0.0.0__b03f5f7f11d50a3a\System.Web.dll'
'iisexpress.exe' (CLR v4.0.30319: /LM/W3SVC/2/ROOT-14-130719418943209850): Unloaded 'C:\WINDOWS\Microsoft.Net\assembly\GAC_MSIL\System\v4.0_4.0.0.0__b77a5c561934e089\System.dll'
'iisexpress.exe' (CLR v4.0.30319: /LM/W3SVC/2/ROOT-14-130719418943209850): Unloaded 'C:\WINDOWS\Microsoft.Net\assembly\GAC_MSIL\System.Core\v4.0_4.0.0.0__b77a5c561934e089\System.Core.dll'
看到上面写着域名15的那行了吗?那是因为游泳池重新启动了15次

另外,一个重要的事实是,解决方案源和输出二进制文件都存储在映射驱动器中。驱动器驻留在我们的网络上

现在我已经尝试了我在网上能找到的一切:

  • 删除项目中的所有断点
  • 在本地缓存目录中加载符号(在工具->选项->调试->符号中)
  • 还有其他一些不起作用的解决方案
在互联网上读了一会儿之后,我发现这可能与应用程序启动时更改的文件有关,IIS Express必须重新编译应用程序才能使更改生效。但问题是,启动应用程序时不会更改任何文件

经过进一步阅读,我发现当应用程序二进制文件驻留在网络驱动器上时,启动应用程序时,文件的时间戳可能会更改,这会导致IIS Express重新编译应用程序,即使文件的内容没有更改。所以我试图找到解决这个问题的办法,有几个人说要断开开发计算机与网络的连接,等几秒钟,然后重新连接网络!是的,对

我没有办法了,所以我尝试了这个牵强的办法。瞧!成功了!!!不再重新启动应用程序!输出窗口现在如下所示:

'iisexpress.exe' (CLR v4.0.30319: /LM/W3SVC/2/ROOT-1-130719436820489369): Loaded 'C:\Users\ca0ssnc\AppData\Local\Temp\Temporary ASP.NET Files\vs\f3da8155\99ebd29d\App_Web_erxb23tr.dll'. 
'iisexpress.exe' (CLR v4.0.30319: /LM/W3SVC/2/ROOT-1-130719436820489369): Loaded 'C:\WINDOWS\Microsoft.Net\assembly\GAC_MSIL\System.Web.Mobile\v4.0_4.0.0.0__b03f5f7f11d50a3a\System.Web.Mobile.dll'. Skipped loading symbols. Module is optimized and the debugger option 'Just My Code' is enabled.
'iisexpress.exe' (CLR v4.0.30319: /LM/W3SVC/2/ROOT-1-130719436820489369): Loaded 'C:\WINDOWS\Microsoft.Net\assembly\GAC_MSIL\System.Web.RegularExpressions\v4.0_4.0.0.0__b03f5f7f11d50a3a\System.Web.RegularExpressions.dll'. Skipped loading symbols. Module is optimized and the debugger option 'Just My Code' is enabled.
'iisexpress.exe' (CLR v4.0.30319: DefaultDomain): Loaded 'C:\WINDOWS\Microsoft.Net\assembly\GAC_MSIL\System.Web.RegularExpressions\v4.0_4.0.0.0__b03f5f7f11d50a3a\System.Web.RegularExpressions.dll'. Skipped loading symbols. Module is optimized and the debugger option 'Just My Code' is enabled.
'iisexpress.exe' (CLR v4.0.30319: /LM/W3SVC/2/ROOT-1-130719436820489369): Loaded 'C:\Users\ca0ssnc\AppData\Local\Temp\Temporary ASP.NET Files\vs\f3da8155\99ebd29d\assembly\dl3\a0da26c9\85d61bc1_9668d001\CalculsWrapper.dll'. Symbols loaded.
'iisexpress.exe' (CLR v4.0.30319: DefaultDomain): Loaded 'C:\Users\ca0ssnc\AppData\Local\Temp\Temporary ASP.NET Files\vs\f3da8155\99ebd29d\assembly\dl3\a0da26c9\85d61bc1_9668d001\CalculsWrapper.DLL'. Symbols loaded.
'iisexpress.exe' (CLR v4.0.30319: /LM/W3SVC/2/ROOT-1-130719436820489369): Loaded 'C:\Users\ca0ssnc\AppData\Local\Temp\Temporary ASP.NET Files\vs\f3da8155\99ebd29d\assembly\dl3\95fa9a38\65cf12c4_9668d001\HardLockWrapper.dll'. Symbols loaded.
'iisexpress.exe' (CLR v4.0.30319: DefaultDomain): Loaded 'C:\Users\ca0ssnc\AppData\Local\Temp\Temporary ASP.NET Files\vs\f3da8155\99ebd29d\assembly\dl3\95fa9a38\65cf12c4_9668d001\HardLockWrapper.DLL'. Symbols loaded.
'iisexpress.exe' (CLR v4.0.30319: /LM/W3SVC/2/ROOT-1-130719436820489369): Loaded 'C:\WINDOWS\Microsoft.Net\assembly\GAC_MSIL\System.Drawing\v4.0_4.0.0.0__b03f5f7f11d50a3a\System.Drawing.dll'. Skipped loading symbols. Module is optimized and the debugger option 'Just My Code' is enabled.
'iisexpress.exe' (CLR v4.0.30319: DefaultDomain): Loaded 'C:\WINDOWS\Microsoft.Net\assembly\GAC_MSIL\System.Drawing\v4.0_4.0.0.0__b03f5f7f11d50a3a\System.Drawing.dll'. Skipped loading symbols. Module is optimized and the debugger option 'Just My Code' is enabled.
'iisexpress.exe' (CLR v4.0.30319: /LM/W3SVC/2/ROOT-1-130719436820489369): Loaded 'C:\WINDOWS\Microsoft.Net\assembly\GAC_MSIL\System.Web.Services\v4.0_4.0.0.0__b03f5f7f11d50a3a\System.Web.Services.dll'. Skipped loading symbols. Module is optimized and the debugger option 'Just My Code' is enabled.
没有更多卸载的DLL。应用程序不再重新启动(请参阅始终使用DefaultDomain)。现在的问题是,每当我重新启动VS2013时,这个问题就会再次出现。每次重新启动VS2013时,我都必须断开并重新连接网络连接

另外,还有一个重要事实:我使用Visual Studio 2013更新4的Web Essentials。当我禁用此扩展时,就没有问题了!应用程序不会重新启动,我不需要断开网络连接。所以问题可能来自于这个扩展


现在,有人能告诉我,我断开网络连接、Web Essentials和Web应用程序文件的时间戳(无论出于何种原因)之间到底有什么关系吗???

请确保从本地驱动器运行解决方案

我也经历过同样的问题。每个请求都非常慢,甚至只是返回一个代码200的结果,或者加载favicon

输出窗口显示与OP描述的症状相似的症状

我从映射的驱动器运行我的解决方案(即使映射指向本地驱动器)


从本地驱动器运行它可以直接解决问题。感谢@Simon Senécal对另一个答案的评论,它为我指明了正确的方向。

好吧,对我来说,当您运行调试会话时,一切都很好,ASP.Net重新启动AppPool\AppDomain以再次执行
应用程序启动
,这样您就可以从头开始调试它了。如果在没有调试的情况下,在实际IIS使用过程中不会发生这种情况,那么应该可以。VS可以使用网络连接来加载已调试程序集的符号您可以尝试从IIS Express切换到普通IIS。它似乎可以避免每次重新加载所有其他DLL。此外,您还可以检查并暂时禁用每次尝试扫描DLL文件的防病毒软件(例如Windows Defender)。另外,如果您“只有”4GB RAM,并且认为需要更多的RAM内存,那么8GB或16GB的内存也有同样的问题,托管解决方案?我们决定将源文件和输出二进制文件移动到本地驱动器上,而不是映射驱动器上。这就解决了问题。