Запуск скриптов Powershell для Exchange в веб-сервисах

Я пытаюсь запустить некоторые скрипты Powershell для Microsoft Exchange в веб-сервисах. Приведенный ниже код прекрасно работает при запуске из консольного приложения, но когда я перемещаю его в проект веб-служб и вызываю веб-метод, он вызывает ошибки при вызове AddPSSnapIn. Есть идеи почему? Я запускаю это на Windows Server 2008 R2 64-разрядной машине. Целевая платформа была изменена с любого процессора на 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." 

1 ответ

Проблема заключалась в том, что мой веб-сервис был создан на сервере разработки Visual Studio, а не на локальном (или другом) сервере, и безопасность / разрешения должны быть более жесткими. Выбрав "Свойства" для своего проекта веб-службы и перейдя на вкладку "Интернет", я выбрал "Использовать локальный веб-сервер IIS" и создал виртуальный каталог. В диспетчере IIS я включил проверку подлинности Windows для своего веб-сервиса, и это устранило проблему!

Другие вопросы по тегам