【问题标题】:IIS Error: Unrecognized configuration path 'MACHINE/WEBROOT/APPHOST/websiteNameIIS 错误:无法识别的配置路径 'MACHINE/WEBROOT/APPHOST/websiteName
【发布时间】:2017-05-23 11:28:49
【问题描述】:

我正在尝试在 c# 代码中设置 IP 地址和域限制,我正在关注 this 文章,但它给了我无法识别的位置错误。

错误:无法识别的配置路径“MACHINE/WEBROOT/APPHOST/websiteName”

我的代码:

using (var serverManager = new ServerManager())
            {
                var config = serverManager.GetApplicationHostConfiguration();
                var ipSecuritySection = config.GetSection("system.webServer/security/ipSecurity", "websiteName");
                var ipSecurityCollection = ipSecuritySection.GetCollection();

                var addElement = ipSecurityCollection.CreateElement("add");
                addElement["ipAddress"] = @"SomeIP";
                addElement["allowed"] = false;
                ipSecurityCollection.Add(addElement);

                var addElement1 = ipSecurityCollection.CreateElement("add");
                addElement1["ipAddress"] = @"SomeIP";
                addElement1["subnetMask"] = @"255.255.0.0";
                addElement1["allowed"] = false;
                ipSecurityCollection.Add(addElement1);

                serverManager.CommitChanges();
                
            }

在这行之后它给了我错误:

var ipSecuritySection = config.GetSection("system.webServer/security/ipSecurity", "websiteName");

谁能告诉我哪里出了问题,或者我错过了什么。

【问题讨论】:

  • 您是否以管理员权限运行 Visual Studio?
  • @PankajKapare:我尝试使用管理员权限运行 Visual Studio,但它给出了同样的错误。
  • 在第 3 行中,您使用的是“erverManager”而不是 serverManager。我相信它的错字。
  • @PankajKapare:是的,它的错字,我要编辑它。谢谢。

标签: c# asp.net iis


【解决方案1】:

您可能会得到一个损坏的 IIS/IIS Express 的 applicationHost.config,其中网站无法拥有根应用程序。如果您不知道如何编辑它,请在问题中发布您文件的 <sites> 标签,以便其他人可以查看并建议如何解决。

【讨论】:

    【解决方案2】:

    老龄化问题,但我想我会分享我的解决方案。

    location 参数必须与 applicationHost.config 文件中的位置路径匹配。这意味着如果 websiteName 实际上是另一个站点下的应用程序,例如默认网站,其位置部分如下所示:

    <location path="Default Web Site/websiteName">
        <system.webServer>
          <.../> 
        </system.webServer>
    </location>
    

    如果是这样,您的第 5 行应如下所示:

    var ipSecuritySection = config.GetSection("system.webServer/security/ipSecurity", "Default Web Site/websiteName");
    

    【讨论】:

      猜你喜欢
      • 2011-01-23
      • 1970-01-01
      • 2013-01-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-10-07
      • 2018-05-25
      • 2016-09-11
      相关资源
      最近更新 更多