0

Web サービスで Microsoft Exchange 用の Powershell スクリプトを実行しようとしています。以下に記述されたコードは、コンソール アプリケーションから実行すると正常に動作しますが、Web サービス プロジェクトに移動して Web メソッドを呼び出すと、AddPSSnapIn を呼び出すとエラーになります。理由はありますか?これを Windows Server 2008 R2 64 ビット マシンで実行しています。ターゲット プラットフォームは任意の CPU から x64 に変更されました。

    Dim rsConfig As RunspaceConfiguration = RunspaceConfiguration.Create()
    Dim snapInException As PSSnapInException = Nothing
    Dim info As PSSnapInInfo = rsConfig.AddPSSnapIn("Microsoft.Exchange.Management.PowerShell.E2010", snapInException)  <-- throws an error

    ' create Powershell runspace and open
    Dim MyRunSpace As Runspace = RunspaceFactory.CreateRunspace(rsConfig)
    MyRunSpace.Open()

    ERROR- System.Web.Services.Protocols.SoapException: System.Web.Services.Protocols.SoapException: Server was unable to process request. ---> System.Management.Automation.PSArgumentException: No snap-ins have been registered for Windows PowerShell version 2." 
4

1 に答える 1

0

問題は、私のWebサービスがローカル(または他の)サーバーではなくVisual Studio Development Serverで作成されており、セキュリティ/権限を厳しくする必要があることでした。Webサービスプロジェクトの[プロパティ]を選択して[Web]タブに移動した後、[ローカルIIS Webサーバーを使用する]を選択し、仮想ディレクトリを作成しました。IISマネージャーで、Webサービスに対してWindows認証を有効にしました。これにより、問題が修正されました。

于 2013-02-15T15:56:46.833 に答える