Назад | Перейти на главную страницу

Powershell, IIS Express, Server 2012, Microsoft.Web.Administration требует запуска от имени администратора

У меня странная проблема с Microsoft.Web.Adminstration 7.9.0.0 для IISExpress, требующая запуска от имени администратора на сервере 2012.

Я пытаюсь добавить веб-сайт в настраиваемый файл ApplicationHost.config с помощью powershell.

Я тестировал свой сценарий PowerShell на Windows 10 и Windows 8.1, и оба работают без администратора, но я застрял с Server 2012.

Я подумал, что это может быть связано с конфликтом между версиями DLL IE 7.0.0.0 и 7.9.0.0.

Я добавил DLL рядом с файлом, но Add-Type продолжает загружать его из GAC. Очень надоедливый.

Единственное, о чем я могу думать сейчас, это; есть какая-то проблема с разрешением GAC. Что не имеет смысла.

# Copied the DLL from C:\Windows\assembly\GAC_MSIL\Microsoft.Web.Administration\7.9.0.0__31bf3856ad364e35\Microsoft.Web.Administration.dll
$assemblyPath = "{Path to dll}\Microsoft.Web.Administration.dll"
Add-Type -LiteralPath $assemblyPath

# This shows Microsoft.Web.Administration loading from the GAC. 
[appdomain]::currentdomain.getassemblies()

$iisApplicationConfig = $(Resolve-Path "{Path to applicationhost.config}\applicationhost.config")
$serverManager = New-Object -TypeName Microsoft.Web.Administration.ServerManager -ArgumentList @($iisApplicationConfig)
$site = $serverManager.Sites[$BuildDefaultProjectName]

Я могу сказать, что заставляет его использовать 7.9.0.0

посмотрите здесь: C: \ Program Files (x86) \ IIS Express \ config \ templates \ PersonalWebServer \ aspnet.config

есть редирект.

<dependentAssembly>
<assemblyIdentity name="Microsoft.Web.Administration"
publicKeyToken="31bf3856ad364e35"
culture="neutral" />
<bindingRedirect oldVersion="7.0.0.0"
newVersion="7.9.0.0" />
<codeBase version="7.9.0.0"
href="FILE://%FalconBin%/Microsoft.Web.Administration.dll" />
</dependentAssembly>

вы можете попробовать полный пакет администратора IIS напрямую https://www.nuget.org/packages/Microsoft.Web.Administration