Как настроить проверку подлинности веб-сайта IIS (на котором размещено приложение службы REST WCF) с использованием powershell? - PullRequest
1 голос
/ 10 марта 2012

У меня есть два веб-сайта IIS, а именно «account.example.com», который был создан в Visual Studio 2010 с использованием веб-приложения ASP.NET MVC 3, и «api.example.com», созданный с помощью Visual Studio 2010 с помощью «WCF».Сервисное приложение REST ".

Я создал скрипт powershell для настройки среды.Функция создания веб-сайта выглядит следующим образом:

function create-website([string]$name, [string]$relativePath) {

    $physicalPath = Join-Path -Path $scriptPath -ChildPath $relativePath
    $physicalPath = [IO.Path]::GetFullPath( $physicalPath )

    # Create an application pool and ensure it is using .NET 4
    New-WebAppPool -Name $name
    Set-ItemProperty IIS:\AppPools\$name managedRuntimeVersion v4.0

    # Create Website
    New-WebSite -Name $name -Port 80 -HostHeader $name -PhysicalPath $physicalPath
    # Set the Application Pool
    Set-ItemProperty IIS:\Sites\$name ApplicationPool $name
    Set-ItemProperty IIS:\Sites\$name ApplicationPool $name

    # Update Authentication
    Set-WebConfigurationProperty -filter /system.WebServer/security/authentication/AnonymousAuthentication -name enabled -value true -location $name
    Set-WebConfigurationProperty -filter /system.WebServer/security/authentication/windowsAuthentication -name enabled -value false -location $name
    Set-WebConfigurationProperty -filter /system.WebServer/security/authentication/basicAuthentication -name enabled -value false -location $name
}

И она вызывается следующим образом:

create-website $accounts "..\src\accounts"
create-website $api "..\src\api\"

Когда я запускаю сценарий, веб-сайт учетных записей настроен правильно (включая проверку подлинности),Тем не менее, при попытке настроить сайт API, я получаю следующую ошибку:

Set-WebConfigurationProperty : Filename: \\?\S:\example\src\api\web.config
Line number: 20
Error: The configuration section 'standardEndpoints' cannot be read because it is missing a section declaration
At S:\example\scripts\Install-DevelopmentEnvironment.ps1:26 char:33
+     Set-WebConfigurationProperty <<<<  -filter /system.WebServer/security/authentication/AnonymousAuthentication -name enabled -value true -location $name
    + CategoryInfo          : NotSpecified: (:) [Set-WebConfigurationProperty], COMException
    + FullyQualifiedErrorId : System.Runtime.InteropServices.COMException,Microsoft.IIs.PowerShell.Provider.SetConfigurationPropertyCommand

Мне неясно, с чего может начаться эта ошибка, так как она нормально работала на веб-сайте «учетных записей».Глядя на Google, некоторые предложили проверить, использует ли веб-сайт пул приложений, работающий с .NET 4. Я проверил, что сценарий успешно это настраивает.

Как мне настроить аутентификацию веб-сайта IIS с помощью Powershell?

1 Ответ

0 голосов
/ 11 марта 2012

Вы пробовали исправление MS для IIS 7.5 ? Он включает исправление для «Вы не можете использовать WMI для управления конфигурациями .NET Framework 4.0». Оперативное исправление решило ту же ошибку стандартных конечных точек с WCF REST-ful службой для Майка.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...