1

Windows Azure を使用して、同じ Web ロールで Web サイトと Web サービスをホストしています。問題は、サイト/アプリケーションごとに、IIS で個別のアプリケーション プールが作成されることです。それらすべてで 1 つのアプリケーション プールを共有する方法はありますか?

これは、IIS に 3 つの異なるアプリケーション プールがある実際の csdef です ( に 1 つ、Virtual ApplicationサイトAppWSに 1つ、サイトに 1 つ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>
...
4

1 に答える 1

0

apppoolを指定する方法がわからないため、IISConfiguratorがジョブを実行し、appoolsを再割り当てした後で、コードを実行する必要があります。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/

于 2012-12-20T11:33:22.210 に答える