从MVC3迁移到MVC4和Azure 1.7 - 为什么iisexpress.exe现在出现在日志文件中

时间:2012-09-05 13:40:51

标签: asp.net-mvc asp.net-mvc-3 azure azure-storage

我有一个ASP MVC4 Windows Azure应用程序。该应用程序正在运行,但自从迁移到MVC4和Azure库的最新版本后,我注意到启动时间非常慢。我检查并注意到日志文件中的以下内容:

迁移前:

'WaIISHost.exe' (Managed (v4.0.30319)): Loaded 'C:\Windows\Microsoft.Net\assembly\GAC_MSIL\SMDiagnostics\v4.0_4.0.0.0__b77a5c561934e089\SMDiagnostics.dll', Skipped loading symbols. Module is optimized and the debugger option 'Just My Code' is enabled.
'WaIISHost.exe' (Managed (v4.0.30319)): Loaded 'C:\Windows\Microsoft.Net\assembly\GAC_MSIL\System.IdentityModel\v4.0_4.0.0.0__b77a5c561934e089\System.IdentityModel.dll', Skipped loading symbols. Module is optimized and the debugger option 'Just My Code' is enabled.
'WaIISHost.exe' (Managed (v4.0.30319)): Loaded 'C:\Windows\Microsoft.Net\assembly\GAC_MSIL\System.ServiceModel.Internals\v4.0_4.0.0.0__31bf3856ad364e35\System.ServiceModel.Internals.dll', Skipped loading symbols. Module is optimized and the debugger option 'Just My Code' is enabled.
'WaIISHost.exe' (Managed (v4.0.30319)): Loaded 'C:\Windows\Microsoft.Net\assembly\GAC_MSIL\Microsoft.VisualStudio.Diagnostics.ServiceModelSink\v4.0_4.0.0.0__b03f5f7f11d50a3a\Microsoft.VisualStudio.Diagnostics.ServiceModelSink.dll', Skipped loading symbols. Module is optimized and the debugger option 'Just My Code' is enabled.
'WaIISHost.exe' (Managed (v4.0.30319)): Loaded 'C:\Windows\Microsoft.Net\assembly\GAC_32\System.Transactions\v4.0_4.0.0.0__b77a5c561934e089\System.Transactions.dll', Skipped loading symbols. Module is optimized and the debugger option 'Just My Code' is enabled.
Auto-attach to process '[8120] w3wp.exe' on machine 'X301' succeeded.
'w3wp.exe' (Managed (v4.0.30319)): Loaded 'C:\Windows\Microsoft.Net\assembly\GAC_32\mscorlib\v4.0_4.0.0.0__b77a5c561934e089\mscorlib.dll', Skipped loading symbols. Module is optimized and the debugger option 'Just My Code' is enabled.
'w3wp.exe' (Managed (v4.0.30319)): Loaded 'C:\Windows\Microsoft.Net\assembly\GAC_32\System.Web\v4.0_4.0.0.0__b03f5f7f11d50a3a\System.Web.dll', Skipped loading symbols. Module is optimized and the debugger option 'Just My Code' is enabled.
'w3wp.exe' (Managed (v4.0.30319)): Loaded 'C:\Windows\Microsoft.Net\assembly\GAC_MSIL\System\v4.0_4.0.0.0__b77a5c561934e089\System.dll', Skipped loading symbols. Module is optimized and the debugger option 'Just My Code' is enabled.

迁移后:

Microsoft.WindowsAzure.ServiceRuntime Information: 101 : Role environment . INITIALIZED
'iisexpress.exe' (Managed (v4.0.30319)): Loaded 'C:\Windows\Microsoft.Net\assembly\GAC_32\mscorlib\v4.0_4.0.0.0__b77a5c561934e089\mscorlib.dll'
'iisexpress.exe' (Managed (v4.0.30319)): Loaded 'C:\Windows\Microsoft.Net\assembly\GAC_32\System.Web\v4.0_4.0.0.0__b03f5f7f11d50a3a\System.Web.dll'
'iisexpress.exe' (Managed (v4.0.30319)): Loaded 'C:\Windows\Microsoft.Net\assembly\GAC_MSIL\System\v4.0_4.0.0.0__b77a5c561934e089\System.dll'
'WaIISHost.exe' (Managed (v4.0.30319)): Loaded 'C:\Code K\ 2\\csx\Debug\roles\WebUx\approot\bin\WebUx.dll', Symbols loaded.
'WaIISHost.exe' (Managed (v4.0.30319)): Loaded 'C:\Windows\Microsoft.Net\assembly\GAC_MSIL\System.Web.Mvc\v4.0_4.0.0.0__31bf3856ad364e35\System.Web.Mvc.dll'
'iisexpress.exe' (Managed (v4.0.30319)): Loaded 'C:\Windows\Microsoft.Net\assembly\GAC_MSIL\System.Configuration\v4.0_4.0.0.0__b03f5f7f11d50a3a\System.Configuration.dll'
'iisexpress.exe' (Managed (v4.0.30319)): Loaded 'C:\Windows\Microsoft.Net\assembly\GAC_MSIL\System.Core\v4.0_4.0.0.0__b77a5c561934e089\System.Core.dll'
'WaIISHost.exe' (Managed (v4.0.30319)): Loaded 'C:\Code K\ 2\\csx\Debug\roles\WebUx\approot\bin\EntityFramework.dll'
Microsoft.WindowsAzure.ServiceRuntime Information: 200 : 'iisexpress.exe' (Managed (v4.0.30319)): Loaded 'C:\Windows\Microsoft.Net\assembly\GAC_MSIL\System.Xml\v4.0_4.0.0.0__b77a5c561934e089\System.Xml.dll'

这里的关键是我迁移后然后在输出日志中看到许多引用iisexpress.exe的行

有人可以给我一些建议。是否有理由将其改为iisexpress,为什么启动时间要慢4-5倍?

2 个答案:

答案 0 :(得分:1)

从SDK 1.7(2012年6月)开始,Windows Azure计算模拟器使用IIS Express作为默认Web服务器。如果您需要/想要使用完整IIS,则可以切换 - http://msdn.microsoft.com/en-us/library/windowsazure/jj156006.aspx

答案 1 :(得分:1)

IISExpress是轻量级独立Web服务器,它是1.7的Windows Azure SDK的默认Web服务器。而这种变化背后的想法是,用户可以更灵活地使用占用空间小,按需加载的Web服务器。

这个forum讨论了为什么IISExpress与完整IIS相比存在一些(4-5次)性能问题。 ScottGu解释了使用IISExpress here的优势,因此您可以确定一下。

根据您的理解,您可以选择IISExpress或完整IIS作为Windows Azure应用程序的Web服务器,如@mcollier所建议的那样。最后,如果您选择使用IISExpress,那么如果您作为服务运行,它可以使其表现更好,这将做得更好。