• 欢迎访问奇跡の海网站,本站不上传任何资源,所有资源均来自于网络,欢迎加入奇跡の海~!奇跡の海-WordPress QQ群
  • 本站下载资源为网络上收集整理而来,并且以计算机技术研究交流为目的,版权归原作者所有,仅供大家参考,学习,不存在任何商业目的与商业用途.
  • 本站系统镜像均来自于官方原版,ed2k可视为P2P下载链接。所有操作系统默认均为试用版,如有正版密钥可以有效激活,本站不提供任何激活和相关服务。

禁止虚拟目录下的webconfig继承根目录下webconfig中的部分配置方法

WEB服务 奇跡の海 2年前 (2017-08-27) 557次浏览 已收录 0个评论 扫描二维码

网站用了url重写,但是不想让站点下面的几个子站受到Url重写的影响,确又不希望更改和重新配置这些子站(虚拟目录创建),
禁止虚拟目录下的webconfig继承根目录下webconfig中的部分配置方法
受影响的有两个方面:
一.在子站下需要加入对应的url重写组件到子站的bin目录下
二.子站下的url地址,受根目录url重写配置的影响

目前只能把url重写的.dll复制子站下的bin目录,然后在对应的子站的web.config里添加上

<system.web>
<!--add-->
<httpModules>
<clear/>
</httpModules>
<!--add-->

这种方式来处理,还是有很大的缺点,要复制相关的.dll
当然希望能够实现,不用修改子站点的任何信息,下面介绍另一种方法:
1.如果是asp.net1.1的程序,那么把IIS配置的asp.net 改成2.0的,(1.1可以在.net2.0下面运行,不影响原来的程序正常运行)
2.在根目录下面的web.config加上

<location path=”.” allowOverride=”false” inheritInChildApplications=”false”>
........
</location>

path 不用说指定的是一个目录
allowOverride 指是否可以将这个重写
inheritInChildApplications 指是否被子级应用程序继承
说明:因为inheritInChildApplications 这个属性,在asp.net1.1里是没有的 所以1.就是为当前修改的配置而设
具体运用实例:根目录下的web.config:
例1:

<location path=”.” allowOverride=”false” inheritInChildApplications=”false”>
<system.web>
<httpHandlers>
<add verb="POST,GET" path="ajax/*.ashx" type="Ajax.PageHandlerFactory, Ajax"/>
</httpHandlers>
</system.web>
</location>

例2:

<location path="." allowOverride="true" inheritInChildApplications="false">
<system.web>
    <httpModules>
      <add name="UrlRewriteModule"
            type="UrlRewritingNet.Web.UrlRewriteModule, UrlRewritingNet.UrlRewriter" />
    </httpModules>
</system.web>
</location>

说明:上面的配置就不会对虚拟目录中的web.config继承主目录中web.config的问题了,(注:IIS一定要.net2.0的配置才行,网上很多资料没有注明这一点)

总结:
1.站点要.net2.0的环境
2.根目录下的web.config 用

<location path="." allowOverride="true" inheritInChildApplications="false"></location>

来限止web.config的一些继承


版权声明:本站所有文章和资源使用CC BY-NC-SA 4.0协议授权发布 , 转载应当以相同方式注明文章来自“SeaOMC.COM->禁止虚拟目录下的webconfig继承根目录下webconfig中的部分配置方法!在下边可以分享本文哦!
喜欢 (0)
[]
分享 (0)
奇跡の海
关于作者:
一个WordPress菜鸟!
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址