おじさん手記(2):アプリケーションプールごとにaspnet.を個別に設定する.configプロファイル

6526 ワード

ASP.NET2.0以降のバージョンでは、各Frameworkのルートディレクトリの下にaspnetが提供されています.configファイル、このファイルはグローバルな情報を構成するために使用されていますが、これまであまり使ったことがありません.
ASP.NET4.0以降、このプロファイルは同時およびスレッドで十分にサポートされています.例えば、maxConcurrentRequestsPerCPU、maxConcurrentThreadsPerCPU、requestQueueLimitなどのパラメータを設定、aspをより柔軟に設定することができる.Netruntimeの構成.
C:\Windows\Microsoft.NET\Framework64\v4.0.30319\aspnet.config
C:\Windows\Microsoft.NET\Framework\v4.0.30319\aspnet.config
C:\Windows\Microsoft.NET\Framework64\v2.0.50727\aspnet.config
C:\Windows\Microsoft.NET\Framework\v2.0.50727\aspnet.config

Windows Server 2008 R 2(IIS 7.5)では、以前のasp.net.configは、すべてのframeworkにのみ適用され、サイトまたはアプリケーションプールを個別に設定することはできません.安心して、アプリケーションプールごとにカスタムaspnetを個別に設定できます.configプロファイルは、ディスク上の任意の場所に保存でき、アプリケーションプールが起動するとIISが自動的にロードされます.MSDNの文章でIISアプリケーションプールの設定について言及すると、このプロファイルの構成を設定するための新しいプロパティCLRConfigFileがサポートされていますが、デフォルトでは値がありません.つまり、デフォルトではframeworkルートのaspnetのみが読み込まれます.configファイル.IISマネージャ(IIS Manager)は、アプリケーションプールを構成するために個別のUIインタフェースを設定していないため、コマンドを手動で使用して設定する必要があります.appcmdを使用する.exeは、次のコマンドラインコードを参照して設定できます.このうち2つの変数(プロファイルパスとアプリケーションプール名)に注意してください.
%windir%\System32\inetsrv\appcmd.exe set config  -section:system.applicationHost/applicationPools /[name='DefaultAppPool'].CLRConfigFile:"c:\inetpub\AppPoolClrConfig\DefaultAppPool_aspnet.config"  /commit:apphost

次の内容も同じですが、テンプレートを参考にして、カッコの中の内容({AppPoolName}と{FilePath})を置き換える必要があることに注意してください.(%windir%System 32inetsrvでappcmdを実行)appcmd.exe set config  -section:system.applicationHost/applicationPools/[name='{AppPoolName}'].CLRConfigFile:「{FilePath}」/commit:apphost注:frameworkルートディレクトリのaspnet.configファイルも依然として使用されており、このカスタムファイルは異なる部分を設定するだけです.例を見てみましょう
<?xml version="1.0" encoding="UTF-8" ?>
<configuration>
<runtime>
<legacyUnhandledExceptionPolicy enabled="false" />
<legacyImpersonationPolicy enabled="true"/>
<alwaysFlowImpersonationPolicy enabled="false"/>
<SymbolReadingPolicy enabled="1" />
<shadowCopyVerifyByTimestamp enabled="true"/>
</runtime>
<startup useLegacyV2RuntimeActivationPolicy="true" />
<system.web>
<applicationPool
maxConcurrentRequestsPerCPU="5000"
maxConcurrentThreadsPerCPU
="0"
requestQueueLimit
="5000" />
</system.web>
</configuration>

権限については、アプリケーション・プールが独自のidentityを使用してこのプロファイルを読み取ります.このファイルに権限がない場合は、次のコードを使用して権限を付与できます.
icacls c:\inetpub\AppPoolClrConfig\DefaultWebSite_aspnet.config /grant "IIS APPPOOL\DefaultAppPool":(R)

安全のため、このファイルに他の権限が継承されていないか、またはより多くの権限があることを確認してください.これで、アプリケーション・プールごとにカスタム・プロファイルを任意に設定できます.もちろん、複数のアプリケーション・プールで同じカスタム・プロファイルを共有することもできます.アプリケーション・プールは起動時にのみプロファイルをロードするため、プロファイルを設定した後、対応するアプリケーション・プールを再起動する必要があります.
 
なお、この機能はIIS 7のみをサポートすることに注意する.5以上のバージョンでは、統合モード(Integrated Pipeline mode)のみがサポートされています.
詳細については、リンクを参照してください.
  •     アプリケーションプール設定:http://msdn.microsoft.com/en-us/library/dd560842.aspx
  •     ASP.NETスレッド使用法:http://blogs.msdn.com/b/tmarq/archive/2007/07/21/asp-net-thread-usage-on-iis-7-0-and-6-0.aspx
  • IIS 7.5アプリケーションプール構成:http://msdn.microsoft.com/en-us/library/aa347554(VS.90).aspx
  • おじさんの手記:日常の仕事の中の各種の小さい技巧と資料を記録することを目的とします(技術に限らないことを含みますが)