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

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

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

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

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

 <configuration>
<!--...其他配置...-->
<location path="." inheritInChildApplications="false">
<system.web> </system.web>
</location>
<!--...其他配置...-->
</configuration>

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

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

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

根目录节点

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

子目录节点

 <connectionStrings>
<clear/>
<add name="DBConnectionString" connectionString="Data Source=.;Initial Catalog=test;User ID=sa;Password=sa123" providerName="System.Data.SqlClient"/>
</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  就是我看的那篇帖子,介绍的更为详细一些

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

虚拟目录webconfig的配置的更多相关文章

  1. Nginx虚拟目录支持PHP配置

    感谢作者:http://blog.csdn.net/fangaoxin/article/details/7030139 location ~ ^/test/.+\.php$ { alias /var/ ...

  2. JSP配置了虚拟目录使用JavaBean报错

    今天遇到一个很棘手的问题,在jsp文件中使用useBean,网页返回码出现了500服务器内部错误,报错信息如下: The value for the useBean class attribute w ...

  3. Nginx 虚拟目录和虚拟主机的配置

    nginx.conf 配置文件的几个常用命令 nginx 配置文件主要分为六个区域: main: 全局设置 events: nginx工作模式 http: http设置 sever: 主机设置 loc ...

  4. Apache,添加虚拟目录

    这几天在自己的虚拟机里面安装了2003,有人说window陪iis较好,但是对iis无兴趣,就自己装了apache,下面介绍如何配置自己的虚拟目录. 想配置自己的虚拟目录,那必须要知道点apache的 ...

  5. Tomcat【介绍Tomcat、结构目录、虚拟目录、临时域名、虚拟主机、体系结构】

    什么是Tomcat Tomcat简单的说就是一个运行JAVA的网络服务器,底层是Socket的一个程序,它也是JSP和Serlvet的一个容器. 为什么我们需要用到Tomcat 如果你学过html,c ...

  6. 重启虚拟目录或站点,不重启iis

    更改站点或虚拟目录的.net Framework 版本会导致重启整个iis服务,所以需要单独重启某个站点或虚拟目录 首先右键点击网站-所有任务-将配置保存到一个文件,从文件中查找到 Location ...

  7. 如何让虚拟目录里面的webconfig不继承网站的设置

    在一个网站 中国红木网 下 建一个虚拟目录,结果虚拟目录系统会调用 中国红木网 上的web.config, 在网上找到以下解决方案 在(如根目录)所在的Web.config加上 如:<locat ...

  8. 【转】如何让虚拟目录里面的webconfig不继承网站的设置

    [转]http://www.cnblogs.com/Sue_/articles/2037556.html 必須在上一层虚拟目录(如根目录)所在的Web.config加上 如:<location ...

  9. Tomcat虚拟目录配置方法及原理

    tomcat 安装好之后,只需要把你的程序包放到$Tomcat_Home$/webapps下就可以直接使用了.这样会使webapps越来越大就需要设置虚拟目录: 1.单个应用设置: 在<Host ...

随机推荐

  1. Tomcat7 配置 ssl

    运行一个配置了ssl的项目时tomcat总是启动不成功,报错:“requires the APR/native library which is not available”,后来发现是找不到apr的 ...

  2. java.net.ConnectException: Connection timed out

    原因可能如下: (1)生成的WSDL的IP地址是不是服务器的IP: (2)代码中是否需要代理,若否,取消代理,若是,设置代理:

  3. 解决WARN: Timeout/setRollbackOnly of ACTIVE coordinator !的问题

    该问题是CoordinatorImp上面的一个定时器造成的,一个活动的session如果在一定的时间内没有执行完毕就会rollback,就算没有sql执行也会不断的进行. 可以参考该链接:https: ...

  4. nginx-(/usr/local/nginx/conf/nginx.conf)更改配置文件

    user www www; worker_processes ; error_log /usr/local/nginx/logs/error.log info ; pid /var/run/nginx ...

  5. Linux VMware 克隆后无法启动eth0网卡

    引: VMware 下LINUX出现:Device eth0 does not seem to be present, delaying initialization.解决办法 VMWare 克隆 复 ...

  6. WinForm窗体 SSK 界面的使用

    1.下载 SSk文件 找到  IrisSkin2.dll 文件和.SSK结尾的文件    为了防止万一粘贴到项目的bin>Debug下面 2. 打开工具箱   添加一个选项卡 3. 添加选择项& ...

  7. radio相关

    radio 按钮组, name=”sex”. <input type="radio" name="sex" value="Male"& ...

  8. 如何让Maple中的数学引擎进入你的桌面应用程序和网站

    MapleNET数学服务套件将Maple 2015强大的数学引擎引入您的应用程序和网站.使用MapleNET,您可以添加数学计算和可视化功能到网页和桌面程序中,通过互联网/局域网分享“活”的Maple ...

  9. 使用libjpeg.framework压缩UIImage

    +(void)writeFile:(NSString *)filePath withQuality:(int)quality { //初始化图片参数 UIImage *image=[UIImage i ...

  10. MySQL 子分区

    200 ? "200px" : this.width)!important;} --> 介绍 子分区其实是对每个分区表的每个分区进行再次分隔,目前只有RANGE和LIST分区 ...