【发布时间】:2014-06-16 19:27:29
【问题描述】:
我可以成功创建一个应用程序池和一个应用程序并将它们链接在一起。
然而,我没有做的是将应用程序 Windows 身份验证设置为 true,将匿名身份验证设置为 false。
我将一大堆示例拼凑成一个来完成这项工作,但我不断收到以下错误。
此配置部分不能用于此路径。有时候是这样的 当该部分锁定在父级别时。锁定是通过 默认(overrideModeDefault="Deny"),或由位置显式设置 带有 overrideMode="Deny" 或旧的 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;
}
}
【问题讨论】: