现在位置首页 / 产品设计 /正文

IIS部署问题集合--虚拟目录问题、权限问题等

作者: IT小兵 | 2013年7月5日| 热度:℃ | 评论: |参与:

在上一个项目中,在部署web系统时,遇到一些问题。整理了一下,方便以后查找。

1、IIS站点与虚拟目录冲突

虚拟目录默认是继承站点的web.config的,

受影响的有两个方面:
一.在子站下需要加入对应的url重写组件到子站的bin目录下
二.子站下的url地址,受根目录url重写配置的影响

以前的时候都是Copy进去缺少的DLL。今天发现问题是,站点是asp.net 1.1,而且还是运行中的生产系统,

不敢修改其web.config。如果可以修改的话,可以采用这个方案:

在根目录下面的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的配置才行,网上很多资料没有注明这一点)
网上说:如果是asp.net1.1的程序,那么把IIS配置的asp.net 改成2.0的,(1.1可以在.net2.0下面运行,不影响原来的程序正常运行)

但是不敢修改。哈哈

修改方法:

1、<httpHandlers>
   
<remove verb="POST,GET" path="ajax/*.ashx" />
   <clear/>
   <add verb="*" path="*.aspx" type="URLRewriter.RewriterFactoryHandler, URLRewriter"/>
</httpHandlers>
<httpModules>
   
<remove name="UrlRewrite"/>
   <clear/>
   <add type="URLRewriter.ModuleRewriter, URLRewriter" name="ModuleRewriter"/>
</httpModules>


一定要把需要的remove的dll放在前面。

2、oracle客户端权限问题

System.Data.OracleClient 需要  Oracle 客户端软件 8.1.7 或更高版本。

说明: 执行当前  Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。 异常详细信息:  System.Exception:  System.Data.OracleClient 需要  Oracle 客户端软件  8.1.7 或更高版本。

NTFS
分区跟Oracle貌似有别扭。Oracle  9i  Release  2 客户端在安装到WindowsNTFS分区下时的安全认证设置不正确,引起本机的Authenticated  Users用户无法看到ORACLE_HOME目录下的内容; 这导致在ASP.NETAuthenticated  Users权限使用System.Data.OracleClient连接Oracle数据库时报出以上错误。



要解决以上问题,只要给Authenticated  Users 组加上访问Oracle  Home目录的权限即可

1、以Administrator权限登录Windows

2、启动Window 资源浏览器找到ORACLE_HOME目录,如C:\Oracle\ora92

3、右键弹出菜单,选择该目录共享与安全(Win2000下要点击属性)

4、点击  “安全页签

5、在组和用户名称列表中点击“Authenticated  Users” .

6、在该用户的权限列表中,将读取和运行的选择框置为不选中状态

7、再次点击读取和运行的选择框,将其设置为选中状态

8、点击高级按钮并在权限项目中确定“Authenticated  Users” 是否拥有读取并运行权限并应用于该文件夹,及子文件夹和文件”. 如果不是,双击这样,并确保权限可以应用于”  “该文件夹,及子文件夹和文件”. 该项非常重要你一定要核查.

9、点击确定按钮

10、重启动, 以使得所有的修改生效.

=============================================================================
注意,权限设置好后,不用机器重启的,直接IIS重启下就行了,方法,开始-运行-CMD-IISRESET

操作系统windows 2003Oracle客户端版本为9.2
VS2005
在开发阶段访问Oracle正常,但是在IIS配置完后出现系统提示"System.Data.OracleClient需要Oracle客户端软件8.1.7或更高版本"

解决办法:找到Oracle客户端的安装目录,设置Network Service对该目录具有访问权限即可。

附注:有些同事操作系统为2003,文件夹没有显示‘共享和安全’,按照如下操作即可调出。

第一种方法:打开我的电脑——工具——文件夹选项——查看——使用简单文件夹共享前的对勾取掉一切就ok

第二种方法:WIN+R打开运行——输入secpol.msc-----本地策略——安全选项——网络访问——本地用户共享安全模式——改为经典就ok!


平时会遇到很多问题,主要是没有自己总结,到用的时候,发现以前就遇到过,但是脑子一点印象都没有了。

杯具啊


转发请注明:IT分享 http://suchso.com

点击阅读本文所属分类的更多文章: 产品设计 。和高手一起交流:346717337
友荐云推荐

未注明转发、原文均为本站原创。分享本文请注明 原文链接

给您更多信息和帮助

在这里您可以找到更多:

技术交流群:346717337 Jquery插件交流

投稿:suchso@vip.qq.com

承接:企业网站门户/微网站/微商城/CMS系统/微信公众号运营/业务咨询

抢天猫双11红包
推荐使用阿里云服务器
echarts教程系列
本月最热文章

微信扫一扫,徜徉悠嘻网,您的休闲乐园

微信公众号:快乐每一天

随机文章
标签

技术交流群:346717337

投稿:suchso@vip.qq.com

专业专注:企业网站门户/微网站/微商城/CMS系统/微信公众号运营/付费问题咨询