2016-11-23 18 views
1

IIS上に複数のアプリケーションプールとWebを作成するアプリケーションを作成しています。32ビットIISアプリケーションプールを有効にするc#

私はそのうちの1つで32ビットアプリケーションを有効にする必要があります。

どのようにプログラムで行うことができますか?

+1

は、あなたが "プログラム的" とはどういう意味ですか?あなたは、そのプールで実行されているアプリ内からですか?私はあなたがプール内からそれを変更できることを非常に疑う。 –

+0

[この記事](https://blogs.msdn.microsoft.com/rakkimk/2007/11/03/iis7-running-32-bit-and-64-bit-asp-net-versions-at-the-同じ時に別のワーカープロセス/)は、(他の方法の中でも)コマンドラインからそれを行う方法を示しています。 –

+1

powershellはこれを行うことができます。https://forums.iis.net/t/1181048.aspxを参照してください.C#のみを使用してください.AppCmd.exeが必要な可能性はありません。 –

答えて

1

IISバージョンを指定していません。ここで説明するように、古いもののために 、一つはDirectoryServicesを使用することができます。 https://msdn.microsoft.com/en-us/library/ms525598%28v=vs.90%29.aspx?f=255&MSPPError=-2147217396

を私が正しくrememeber場合は32ビットのためのプロパティが「Enable32BitAppOnWin64」でなければなりません。ここで説明するように

IIS 7+のために、あなたはMicrosoft.Web.Administration名前空間を使用する必要があります。 https://www.iis.net/learn/manage/scripting/how-to-use-microsoftwebadministration

これは、管理APIです。投稿された参照を確認するか、少し実験してください。

また、IISメタベース互換性がIIS 7にインストールされている場合は、最初のソリューションも有効です。 (新しいシステムでは使用不可)DirectoryServicesを使用して

例:

var appPool = new DirectoryEntry(string.Format("IIS://{0}/w3svc/apppools/DefaultAppPool", Environment.MachineName)); 
      //Integrated mode 
      appPool.InvokeSet("ManagedPipelineMode", new object[] { 0 }); 
      appPool.InvokeSet("MaxProcesses", new object[] { 1 }); 
      //Enable 32-bit Applications 
      appPool.InvokeSet("Enable32BitAppOnWin64", new object[] { true }); 

      appPool.CommitChanges(); 
+0

私はあなたが私を何度も送って、その解決策を見つけられなかったという記事を投稿してください。 – TiraULTI

+0

ポストを例文で更新しました。見てみな – Roland

関連する問題