Windows Azure web角色入口点和.aspx页面处理程序如何在不同的进程中运行?
我在和你玩。它包含一个派生自Windows Azure web角色入口点和.aspx页面处理程序如何在不同的进程中运行?,windows,iis,deployment,azure,cloud,Windows,Iis,Deployment,Azure,Cloud,我在和你玩。它包含一个派生自RoleEntryPoint的类和一个包含按钮单击处理程序的.aspx页面 我在Azure Emulator中测试它。我把下面的代码(采取) 在角色OnStart()和按钮单击处理程序中。调用角色OnStart()时,它会在MachineName\\MyLogin帐户下的waihost.exe中运行;调用按钮处理程序代码时,它会在MachineName\\NETWORK SERVICE帐户下的w3wp.exe中运行。真令人惊讶 为什么来自同一个角色项目的这些代码片段在
RoleEntryPoint
的类和一个包含按钮单击处理程序的.aspx页面
我在Azure Emulator中测试它。我把下面的代码(采取)
在角色OnStart()
和按钮单击处理程序中。调用角色OnStart()
时,它会在MachineName\\MyLogin
帐户下的waihost.exe
中运行;调用按钮处理程序代码时,它会在MachineName\\NETWORK SERVICE
帐户下的w3wp.exe
中运行。真令人惊讶
为什么来自同一个角色项目的这些代码片段在不同的进程中和不同的帐户下运行?我可以改变这一点吗?对于Windows Azure v1.3及更高版本,Web角色利用完整的IIS,而不是托管的Web核心。IIS在单独的appdomain中运行
有关血淋淋的详细信息,请参阅Windows Azure团队的信息。David是正确的。除此之外,您还可以关闭此行为并运行可承载web核心中的所有内容(与SDK 1.4之前的工作方式相同)。您只需注释掉服务定义中的“站点”部分,如下例所示:
<?xml version="1.0" encoding="utf-8"?>
<ServiceDefinition name="aExpense.Azure" xmlns="http://schemas.microsoft.com/ServiceHosting/2008/10/ServiceDefinition">
<WebRole name="aExpense" vmsize="Medium">
<Sites>
<Site name="Web">
<Bindings>
<Binding name="HttpsIn" endpointName="HttpsIn" />
</Bindings>
</Site>
</Sites>
<ConfigurationSettings>
<Setting name="DiagnosticsConnectionString" />
<Setting name="DataConnectionString" />
<Setting name="allowInsecureRemoteEndpoints" />
</ConfigurationSettings>
David是正确的。如果需要,您可以只在托管的Web Core(无IIS)上运行,前提是您对服务定义文件的“”部分进行了注释。@Eugenio Pace:能否将其作为单独的答案添加?这是非常重要的,完全不值得怀疑的是,完整的IIS可以如此轻松地关闭。
<?xml version="1.0" encoding="utf-8"?>
<ServiceDefinition name="aExpense.Azure" xmlns="http://schemas.microsoft.com/ServiceHosting/2008/10/ServiceDefinition">
<WebRole name="aExpense" vmsize="Medium">
<Sites>
<Site name="Web">
<Bindings>
<Binding name="HttpsIn" endpointName="HttpsIn" />
</Bindings>
</Site>
</Sites>
<ConfigurationSettings>
<Setting name="DiagnosticsConnectionString" />
<Setting name="DataConnectionString" />
<Setting name="allowInsecureRemoteEndpoints" />
</ConfigurationSettings>