2013-02-14 112 views
0

我正在尝试在Web服务中为Microsoft Exchange运行一些Powershell脚本。下面编写的代码在从控制台应用程序运行时工作正常,但是当我将它移动到Web服务项目并调用Web方法时,它会在调用AddPSSnapIn时出错。任何想法为什么?我在Windows Server 2008 R2 64位机器上运行这个。目标平台已经从Any CPU改为x64,没有任何运气。在Web服务中运行Exchange的Powershell脚本

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." 
+0

当我运行“get-pssnapin -registered”时,它显示Exchange管理单元是针对版本1.0的PowerShell。我假设我需要2.0,但不知道如何得到那个(其他人添加/注册了版本1,但是工作正常)。 – Kelly 2013-02-14 20:50:43

回答

0

的问题是,我的网络服务都在Visual Studio开发服务器,而不是本地(或其他)服务器和安全上创建/权限必须更严格。选择我的Web服务项目的属性并转到Web选项卡后,我选择了“使用本地IIS Web服务器”并创建了一个虚拟目录。在IIS管理器中,我为我的Web服务启用了Windows身份验证,并解决了这个问题!