iis - 如何设置站点/应用程序以在 Windows Azure 上共享相同的应用程序池

标签 iis azure application-pool azure-web-roles

我使用 Windows Azure 在同一 Web 角色中托管网站和 Web 服务。问题在于,对于每个站点/应用程序,都会在 IIS 上创建一个单独的应用程序池。 有没有办法让它们共享一个应用程序池?

这是我的实际 csdef,我在 IIS 中拥有三个不同的应用程序池(1x 用于虚拟应用程序、1x 用于站点 AppWS 和 1x 用于站点 Web )

<WebRole name="Orchard.Azure.Web" vmsize="ExtraSmall">
<Sites>
  <Site name="Web">
    <VirtualApplication name="VAppWS" physicalDirectory="..\..\..\AppWS" />
    <Bindings>
      <Binding name="Binding80" endpointName="Endpoint80" />
      <Binding name="Binding443" endpointName="Endpoint443" />
    </Bindings>
  </Site>
  <Site name="AppWS" physicalDirectory="..\..\..\AppWS">
    <Bindings>
      <Binding name="Binding444" endpointName="Endpoint444" />
    </Bindings>
  </Site>
</Sites>
<Endpoints>
  <InputEndpoint name="Endpoint80" protocol="http" port="80" />
  <InputEndpoint name="Endpoint443" protocol="https" port="443" certificate="ssl.root" />
  <InputEndpoint name="Endpoint444" protocol="https" port="444" certificate="ssl.ws" />
</Endpoints>
...

最佳答案

我不知道有什么方法可以指定应用程序池,因此您必须在 IISConfigurator 完成其工作并重新分配应用程序池后运行一些代码。 您可以使用 Azure 启动任务,但不幸的是它运行得太早 - 在 IISconfigurator 之前。

看看这个解决方法:http://mvolo.com/configure-iis-websites-windows-azure-startup-tasks-appcmd/

他创建了一个特殊的异步任务,在 IISConfigurator 之后运行 init 命令。 init 命令可能是这样的 - 它将所有应用程序池分配给新创建的应用程序池:

%windir%\system32\inetsrv\appcmd add apppool /name:MyApplicationPool /managedRuntimeVersion:v4.0
%windir%\system32\inetsrv\appcmd list app /xml | %windir%\system32\inetsrv\appcmd set app /in /applicationPool:MyApplicationPool

另一种方法可能是使用 Microsoft.Web.Administration 程序集在特殊的 Web 应用程序中进行重新分配。

看一下这个例子:http://www.wadewegner.com/2011/01/programmatically-changing-the-apppool-identity-in-a-windows-azure-web-role/

关于iis - 如何设置站点/应用程序以在 Windows Azure 上共享相同的应用程序池,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13768877/

相关文章:

asp.net-mvc - IIS 如何知道请求是 webforms 还是 MVC? (ASP.NET)

ssl - 事件 ID 36887,从远程终结点收到致命警报。 TLS 协议(protocol)定义的致命警报代码是 40

batch-file - 从批处理文件重新启动 IIS 站点及其应用程序池

php - iis 上的 WordPress 上传文件错误 500

python-3.x - 设置 Azure 环境凭据()

c# - 使用 TSQL 或 Azure API C# 在弹性池中的故障转移组中添加和删除 Azure 数据库

session - 回收 IIS 应用程序池是否会导致正在进行的 session 出现问题?

c# - Azure WebJobs Blob 触发器 - 多次调整大小

iis-6 - 工作进程已达到其允许的处理时间

asp.net - 是什么导致IIS中的应用程序池回收?