#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. Использование процесса. Запуск (путь, аргументы) Я заставил это работать. Спасибо