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