Сбой iis при создании нового приложения и включении проверки подлинности Windows

#c# #iis

#c# #iis

Вопрос:

Я могу успешно создать пул приложений и приложение, а также связать их вместе.

Однако мне не удается установить для проверки подлинности Windows приложений значение true, а для анонимной проверки подлинности значение false.

Я собрал кучу примеров в один, чтобы сделать эту работу, но я продолжаю получать следующую ошибку.

Этот раздел конфигурации нельзя использовать по этому пути. Это происходит, когда раздел заблокирован на родительском уровне. Блокировка выполняется либо по умолчанию (overrideModeDefault=»Запретить»), либо задается явно тегом location с overrideMode=»Запретить» или устаревшим AllowOverride=»false».

Теперь, за исключением очевидного, что overrideMode должен, вероятно, равняться Allow. Как мне это сделать?

   public static bool CreateApplication(String websiteName, String applicationName, String appDIR,String appPoolName)
  {
     try
      {
      ServerManager iisManager = new ServerManager();

      if (!applicationName.Contains("/"))
          applicationName = "/"   applicationName;



      var app = iisManager.Sites[websiteName].Applications.Add(applicationName, appDIR);                             


      app.ApplicationPoolName = appPoolName;

      var config = app.GetWebConfiguration();

      var anonsection = config.GetSection("system.webServer/security/authentication/anonymousAuthentication", iisManager.Sites[websiteName].Name   applicationName);

      //This is where it fails 
      anonsection["enabled"] = false;

      var winsection = config.GetSection("system.webServer/security/authentication/windowsAuthentication", iisManager.Sites[websiteName].Name   applicationName);
      winsection["enabled"] = true;

      iisManager.CommitChanges();
      return true;
    }
    catch
    {
      return false;
    }
 }
  

Ответ №1:

Используйте следующие команды из командной строки администратора

 %windir%system32inetsrvappcmd unlock config -section:system.webServer/security/authentication/windowsAuthentication
%windir%system32inetsrvappcmd unlock config -section:system.webServer/security/authentication/anonymousAuthentication
  

Это разблокирует эти разделы конфигурации.

Комментарии:

1. Нужно ли это делать на каждом компьютере, на котором выполняется этот код?

2. ДА. Но вы, вероятно, можете использовать Process.Start его для запуска как часть своего кода. Я этого не пробовал.

3. Хорошо, мне придется попробовать. Я пытаюсь создать установщик.

4. Использование процесса. Запуск (путь, аргументы) Я заставил это работать. Спасибо