12

Exchange 2010 スナップが読み込まれた状態で PowerShell 実行空間を作成する次のコードがあります。

Dim runspaceConfig = RunspaceConfiguration.Create()

Dim snapInException As PSSnapInException = Nothing
runspaceConfig.AddPSSnapIn("Microsoft.Exchange.Management.PowerShell.E2010", snapInException)

Dim runspace = RunspaceFactory.CreateRunspace(runspaceConfig)
runspace.Open()

Visual Studio 2012 をインストールしてから、スナップインを実行空間構成に追加する行を実行すると、次のエラーが発生し始めました。

System.Management.Automation.Runspaces.PSSnapInException occurred
  HResult=-2146233087
  Message=Cannot load Windows PowerShell snap-in Microsoft.Exchange.Management.PowerShell.E2010 because of the following error: The type initializer for 'Microsoft.Exchange.Data.Directory.Globals' threw an exception.
  Source=System.Management.Automation
  WasThrownFromThrowStatement=False
  StackTrace:
       at System.Management.Automation.Runspaces.RunspaceConfigForSingleShell.LoadCustomPSSnapIn(PSSnapInInfo mshsnapinInfo)
       at System.Management.Automation.Runspaces.RunspaceConfigForSingleShell.LoadPSSnapIn(PSSnapInInfo mshsnapinInfo)
       at System.Management.Automation.Runspaces.RunspaceConfigForSingleShell.LoadPSSnapIn(PSSnapInInfo mshsnapinInfo, PSSnapInException& warning)
       at System.Management.Automation.Runspaces.RunspaceConfigForSingleShell.DoAddPSSnapIn(String name, PSSnapInException& warning)
       at System.Management.Automation.Runspaces.RunspaceConfiguration.AddPSSnapIn(String name, PSSnapInException& warning)

nlog が何らかの形でこの問題を引き起こしていることを確認できました。PowerShell 実行空間を作成する前に nlog ロガーを作成すると、エラーが発生します。

アプリ構成から nlog 構成セクションを削除し、空の nlog ロガーを作成すると、スナップインはエラーなしで読み込まれます。また、nlog 構成をアプリ構成に残したまま、nlog ロガーを作成しない場合、スナップインも正常に読み込まれます。

  • x64 と x86 の両方でプロジェクトをビルドしようとしました。
  • 交換管理ツールを再インストールしました。
  • 交換環境の別のマシンでテストを試みました。

この問題を解決するのに役立つ提案を誰かが提供できれば、私はとても助かります。

ありがとうございました

4

4 に答える 4

5

さらに調査した結果、.NET 4.5はインプレースアップデートであることがわかりました。つまり、.NET 4.0は上書きされ、インストールすると.NET4.5に置き換えられます。これを引き起こす.NET4.5で何が変更されたかはわかりませんが、.NET 4.5をアンインストールし、Visual Studio 2010に戻すことで問題が解決します。近い将来、Microsoftが問題を解決し、問題を解決できる更新プログラムを提供する予定です。 VisualStudio2012を再度使用します。

インプレースアップデートの詳細については、次の記事を参照してください。 http://www.devproconnections.com/article/net-framework/net-framework-45-versioning-faces-problems-141160

于 2012-09-24T19:01:47.697 に答える
0

実稼働サーバーと同じエラー出力でまったく同じ問題があります。ただし、.Net 4.5 フレームワークを使用した同じ構成のテスト サーバーがありますが、この問題は発生していません。したがって、.Net 4.5をアンインストールしても問題が解決するとは思いません。

私の解決策は、IISの運用サーバーASP.Net Impersonation設定が有効になっていることを発見したことです。

無効にすると、PowerShell 実行空間を作成できます。「Microsoft.Exchange.Management.PowerShell.E2010」スナップインを追加すると、アプリケーションは正常に動作します。

ある種の許可の問題があるようです。

于 2016-11-22T08:57:55.240 に答える