configSource文件“ connections.config”也用于父级,这是不允许的。


9

题:

我面临以下情况:

在计算机“ vmsomething”上部署的ASP.NET .NET 4.0 Web应用程序。

在IIS 7.5上运行的Web应用程序驻留在vmsomething上的d:\ webs \ myapplication中。

应用程序的配置文件:

connections.config

<?xml version="1.0"?>
<connectionStrings>
  <remove name="server"/>
  <add name="server" connectionString="Data Source=OUR_DB_Server;Initial Catalog=MY_INITIAL_CATALOG;Persist Security Info=False;User Id=OUR_DB_User;Password=OUR_TOP_SECRET_PASSWORD;MultipleActiveResultSets=False;Packet Size=4096;Application Name=&quot;MyApplication&quot;" providerName="System.Data.SqlClient"/>
</connectionStrings>

web.config:

<?xml version="1.0"?>
<configuration>

  <connectionStrings configSource="connections.config"/>

  <system.web>
    <roleManager enabled="true" defaultProvider="AspNetWindowsTokenRoleProvider"/>
    <compilation strict="true" explicit="true">
      <assemblies>
        <add assembly="System.DirectoryServices, Version=2.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A"/>
        <add assembly="Microsoft.JScript, Version=8.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A"/>
      </assemblies>
    </compilation>
    <authentication mode="Windows"/>
    <pages>
      <namespaces>
        <clear/>
        <add namespace="System"/>
      </namespaces>
    </pages>
    <customErrors mode="Off">
      <error statusCode="404" redirect="~/w8/index.html"/>
    </customErrors>
    <globalization uiCulture="de" culture="de-CH" requestEncoding="UTF-8" responseEncoding="UTF-8"/>
    <httpRuntime maxRequestLength="2048000" executionTimeout="86400"/>
  </system.web>
  <system.webServer>
    <validation validateIntegratedModeConfiguration="false"/>
  </system.webServer>
</configuration>

然后,可以通过两种方式访问​​该应用程序:
方法一:http : //vmsomething.com
方法二:http : //vmsomething.com/my_application_virtdir
(不带.com,无法添加本地链接)

现在,我可以在http://vmsomething.com上打开应用程序了。
如果我尝试在http://vmsomething.com/my_application_virtdir上打开应用程序,则会出现此错误:

配置错误

我不是服务器的管理员,也不知道他是如何配置的。
现在我的问题是:

  • 是什么导致此错误?
  • 如何解决?

Answers:


9

原因是您有两个针对同一物理文件夹的网站。并且web.config中存在继承

http://vmsomething是父母,http://vmsomething/my_application_virtdir是孩子。子级web.config从其父级继承所有元素。而且web.config通常不适用于这种情况。当从nuget安装的其他实用程序尝试修改您的web.config时,您可能会头疼。

如果您想访问您的网站,http://vmsomething/my_application_virtdir那么我想最简单的解决方案是将物理路径更改为http://vmsomething其他内容。

如果要在不指定virtdir的情况下测试网站的工作方式,则可以在IIS中配置单独的网站(不是默认网站),并将其定位到相同的物理路径。然后,您将能够同时测试两种部署方式。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.