У меня странная проблема с 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