1

我有一个 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 倍?

4

2 回答 2

1

IISExpress 是轻量级的独立网络服务器,它是 1.7 版 Windows Azure SDK 的默认网络服务器。这种变化背后的想法是,用户将拥有更大的灵活性来使用占用空间小且按需加载的 Web 服务器。

这个论坛很好地讨论了为什么 IISExpress 与 Full IIS 相比存在一些(4-5 次)性能问题。ScottGu在这里解释了使用 IISExpress 的优势,所以您一定可以看看。

根据您的理解,您可以按照@mcollier 的建议选择 IISExpress 或 Full IIS 作为 Windows Azure 应用程序的 Web 服务器。最后,如果您选择使用 IISExpress,如果您作为服务运行,您可以使其性能更好,这样会做得更好。

于 2012-09-05T18:58:03.473 回答
1

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

于 2012-09-05T16:41:33.453 回答