zoukankan      html  css  js  c++  java
  • 虚拟目录webconfig的配置

        昨天需要新建一个虚拟目录放在以前的一个站点下,新建了应用池,配好了环境置顶路径,虚拟目录页建立成功 ,但是程序一直是报错。这个程序我在测试服务器上是测过的,新建了一个站点是可以正常访问的,排除了程序问题。

    一直是报500,在webconfig配置抛出错误的 customErrors节点也不起作用,后来把程序全部删掉放了一个静态页,是可以访问成功的,说明虚拟目录的配置也是没问题的,毫无头绪,在网上查了好久各种配置都试过了还是不行,今天无意中看见了一个帖子给我灵感,然后试了一下果然成功了

        虚拟目录的webconfig是继承了根目录的webconfig的所有配置的,所以如果有节点名称是一样的话就会有冲突报错。这时候很可能会出 http 500的错误

      这个时候有两种方法可以解决

    1.在根目录解除子目录的继承

    1 <configuration>
    2   <!--...其他配置...-->
    3   <location path="." inheritInChildApplications="false">
    4     <system.web>
    5 
    6     </system.web>
    7   </location>
    8   <!--...其他配置...-->
    9 </configuration>

    这里的inheritInChildApplications就是接触子目录webconfig的继承,将不需要子目录继承的节点放在这个节点里面就ok了

    这种方法的优点是很简单,但是不够灵活,同时面对较复杂的Web.config配置,仍可能会报错。比如根目录和子目录有着不同的system.webServer配置,按照这个方法在根目录的system.webServer外面加上了location限制,不幸的是,IIS7下会出现500错误。

    2.在子目录对冲突的节点处理

    根目录节点

    1 <connectionStrings>
    2     <add name="DBConnectionString" connectionString="Data Source=.;Initial Catalog=test;User ID=sa;Password=sa123" providerName="System.Data.SqlClient"/>
    3   </connectionStrings>

    子目录节点

    1 <connectionStrings>
    2     <clear/>
    3     <add name="DBConnectionString" connectionString="Data Source=.;Initial Catalog=test;User ID=sa;Password=sa123" providerName="System.Data.SqlClient"/>
    4   </connectionStrings>

    在冲突的节点前先clear,清除之前的配置,然后再加载下面的配置就可以了,除了clear 还有remove也可以

     <connectionStrings>
        <remove name="DBConnectionString"/>
        <add name="DBConnectionString" connectionString="Data Source=.;Initial Catalog=test;User ID=sa;Password=sa123" providerName="System.Data.SqlClient"/>
      </connectionStrings>

    这种配置方法可以用在所有的节点上,使用起来也比较灵活,个人推荐用第二种方法。

    参考来自 http://blog.csdn.net/papalian/article/details/7204248  就是我看的那篇帖子,介绍的更为详细一些

    最后说一下,昨天从下午三点到晚上十点,今天上午又弄了一个小时。希望大家可以用得上,以后出现同样的问题直接就可以用了,大家也要多分享

  • 相关阅读:
    swoole 安装方法 使用即时聊天
    git的介绍以及简单应用
    curl的应用
    linux下监听和同步代码配置
    mac skim 修改背景色
    php 编译安装的一个 configure 配置
    mac mysql error You must reset your password using ALTER USER statement before executing this statement.
    yii2 控制器里 action 大小写组合造成的路由问题
    warning : json_decode(): option JSON_BIGINT_AS_STRING not implemented in xxx
    redis 自启动脚本
  • 原文地址:https://www.cnblogs.com/Sprint-Guo/p/6228787.html
Copyright © 2011-2022 走看看