使用Powershell的Microsoft.Web.Administration - 它连接到我的IISExpress实例而不是我的主实例?



我正在尝试通过PowerShell管理我的IIS实例。

[System.Reflection.Assembly]::LoadWithPartialName("Microsoft.Web.Administration") | Out-Null
$Iis = [Microsoft.Web.Administration.ServerManager]::OpenRemote($WebServer)
$IisApp = $Iis.sites[$SiteName].Applications["/$WebApplicationName"]
if(-not $IisApp)
{
$IisApp = $Iis.sites[$SiteName].Applications.Add("/$WebApplicationName", $WebApplicationFolder)
}

此操作失败,因为它有时会在目标计算机上找到错误的 IIS 实例。 如何告诉Microsoft.Web.Administration使用真正的IIS 而不是 IIS Express?

我还尝试通过NuGet获取最新的Microsoft.Web.Administration,但它并没有更好。我已将程序集拉到共享的Nuget位置(c:nugetpackages(,而是从那里加载程序集

add-type -Path "C:nugetpackagesMicrosoft.Web.Administrationlibnetstandard1.5Microsoft.Web.Administration.dll"

并确认服务器管理器来自正确的程序集,没有什么不同。

我已经从我的机器上卸载了 IIS Express,它可以在我的机器上运行,但我无法从我希望面向的每台机器上卸载 IIS Express。

如何告诉Microsoft.Web.Administration专注于真正的 IIS 而不是 IIS Express?

如果安装了 IIS Express,则一切都会失败。如果未安装 IIS Express,则一切正常。

帮助?

C:WindowsSystem32inetsrv加载 Microsoft.Web.Administration 修复了它。 使用OpenRemote进行远程调用不起作用,因此我不得不使用Invoke-SqlCommand在远程计算机上进行管理。

相关内容

  • 没有找到相关文章

最新更新