C# iis创建新应用程序和启用Windows身份验证失败

C# iis创建新应用程序和启用Windows身份验证失败,c#,iis,C#,Iis,我可以成功创建应用程序池和应用程序,并将它们链接在一起 但是,我没有做到的是将应用程序Windows身份验证设置为true,将匿名身份验证设置为false 我把一大堆例子拼凑成了一个,这样做很有效,但我不断地遇到以下错误 无法在此路径上使用此配置节。这种情况会发生 当节在父级锁定时。锁定是通过 默认值(overrideModeDefault=“Deny”),或由位置显式设置 标记为overrideMode=“Deny”或传统的allowOverride=“false” 现在,除非override

我可以成功创建应用程序池和应用程序,并将它们链接在一起

但是,我没有做到的是将应用程序Windows身份验证设置为true,将匿名身份验证设置为false

我把一大堆例子拼凑成了一个,这样做很有效,但我不断地遇到以下错误

无法在此路径上使用此配置节。这种情况会发生 当节在父级锁定时。锁定是通过 默认值(overrideModeDefault=“Deny”),或由位置显式设置 标记为overrideMode=“Deny”或传统的allowOverride=“false”

现在,除非overrideMode需要允许的明显相等。我如何做到这一点

  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;
    }
 }

在管理命令提示符下使用以下命令

%windir%\system32\inetsrv\appcmd unlock config -section:system.webServer/security/authentication/windowsAuthentication
%windir%\system32\inetsrv\appcmd unlock config -section:system.webServer/security/authentication/anonymousAuthentication

这将解锁这些配置部分。

是否需要在运行此代码的每台计算机上执行此操作?是。但您可能可以使用
Process.Start
将其作为代码的一部分运行。我还没试过。好吧,我得试一下。我正在尝试构建一个安装程序。使用Process.Start(路径、参数)我让它正常工作。非常感谢。