| 下载中心 | 文章中心 | 虚拟主机 | 网站开发 | 加入收藏 | 设为首页  
   本站首页 | 公司资讯 | 业内资讯 | 服务器类 | 黑客相关 | 私服技术 | 家用电脑 | 网站建设 | 局域网类 | 网吧相关 | 游戏攻略 | 编程开发 | 软件应用 | 硬件维修 | 分类
 站内搜索:
  百度热门搜索: it教育 网络教育 网站推广 创业致富 电动车 太阳能 瘦身产品 公告: 联邦电脑十周年系列操作系统,快速稳定,欢迎下载使用!
  热门阅读
  相关文章
传统ASP程序开发者使用IIS7小提示
作者:佚名  来源:不详  发布时间:2007-6-7 7:23:11  发布人:snlb

减小字体 增大字体

至今还有这么多传统ASP (Classic ASP) 应用程序和开发者,真让我感到惊讶。我还记得96、97年的时候IIS3问世,我体验了最原始的ASP程序,并为它与ColdFusion相比表现出的惊 人的可编程性赞叹不已。使用传统ASP我建立了许多应用, 它将成为我记忆中永不褪色的闪光点:)

  使用传统ASP编程的开发人员应该对IIS7的几个小变化引起注意。  

  ASP缺省不安装  

  重要的事先来! 如果从XP迁移到Vista / Longhorn Server, 您也许会得到这个错误:

  ------------------------------------------------------------------------------ 

  HTTP Error 404.3 - Not Found  

  Description: The page you are requesting cannot be served because of the Multipurpose Internet Mail Extensions (MIME) map policy that is configured on the Web server. The page you requested has a file name extension that is not recognized, and is not allowed. 

  ------------------------------------------------------------------------------

  这是您没有安装ASP组件时的情形,所以去您安装IIS的地方找到IIS/WWW Services(WWW服务)/Application Development(应用程序开发)/ASP 来安装它。:) 

  Access 与传统ASP  

  很多人使用Access作为数据库-因为它小巧,可复制, 容易处理。我们在Vista IIS7的一个变动就是缺省不使用ASP和Access。本篇我将详细描述这一变化, 但根本上这是因为应用程序池(Application Pool)缺省不再使用\windows\temp, 而改为应用程序池身份档案(identity's profile)和临时目录。并且因为只有"网络服务"才能向网络服务的临时目录执行写入操作, ASP使用虚拟身份(impersonated identity)访问数据库, 所以匿名或已认证的ASP应用程序就会中止。如果您在IIS7使用ASP+Access、你大概会看到与以下提示类似的错误信息:

  ------------------------------------------------------------------------------ 

  Microsoft JET Database Engine error '80004005'

  Unspecified error 

  ------------------------------------------------------------------------------

  回答很简单: 关闭loadUserProfile, 或者设置temp directory的访问权限以允许写操作. 这一问题和其它兼容性问题导致, 我们考虑在Longhorn Server / Vista SP1中取消这一变化.   

  不过现在, 您可以在下列措施中任选一项:   

  这个 appcmd 指令将为缺省应用程序池关闭 loadUserProfile. 假如您的程序运行于不同的应用程序池(AppPool), 就相应改动一下:  

  %windir%\system32\inetsrv\appcmd set config -section:applicationPools /[name='DefaultAppPool'].processModel.loadUserProfile:false  

  这条命令将把网络服务的临时目录权限改为可读可写。如果你是以另一个身份来运行程序,那么你还需要将那个身份的临时目录权限给打开:

  icacls %windir%\serviceprofiles\networkservice\AppData\Local\Temp /grant Users:(CI)(S,WD,AD,X)  

  icacls %windir%\serviceprofiles\networkservice\AppData\Local\Temp /grant "CREATOR OWNER":(OI)(CI)(IO)(F)  

  脚本错误默认为不在浏览器中显示了  

  作为安全策略的一部分,我们关闭了ASP的自动在浏览器中显示脚本错误的提示。也就是说一般用户将不会再看到你的语句到底是哪一行出了差错。取而代之的是这个错误提示:

  ------------------------------------------------------------------------------ 

  An error occurred on the server when processing the URL. Please contact the system administrator  

  ------------------------------------------------------------------------------

  要想恢复到IIS6的状态也很容易,运行下面命令即可:  

  %windir%\system32\inetsrv\appcmd set config -section:asp -scriptErrorSentToBrowser:true  

  或者你可以在窗口界面中找到以下这个选项:

  


  之后你就能看到这样的错误提示信息了:

  ------------------------------------------------------------------------------ 

  Microsoft VBScript compilation error '800a03ea'  

  Syntax error  

  /test.asp, line 4  

  Response.Write("I love classic ASP" && foo)


  ------------------------------------------------------------------------------

  父目录默认是不能访问的  

  在IIS6中我们默认屏蔽了父目录的访问,但是一些从XP升级到Vista的用户显然遇到了麻烦。因为在IIS5.1中,父目录默认是可以访问的。所以如果你使用了../../../includeFile.inc这样的路径,你就会得到这样的错误提示:

  ------------------------------------------------------------------------------

  Active Server Pages error 'ASP 0131'  

  Disallowed Parent Path  

  /test.asp, line 1  

  The Include file '../bad.inc' cannot contain '..' to indicate the parent directory.

  ------------------------------------------------------------------------------

  要想恢复到IIS6的状态也很容易,运行下面命令即可:  

  %windir%\system32\inetsrv\appcmd set config -section:asp -enableParentPaths:true

  或者你可以在窗口界面中找到以下这个选项:
  
[ ] [返回上一页] [打 印] [收 藏]
关于本站 - 网站帮助 - 广告合作 - 下载声明 - 网站地图
  联邦电脑版权所有 Copyright©1996-2004 联邦电脑 All Rights Reserved  
   xkej@sina.com 业务联系:0516-88380202 88085202 QQ: 81566563  
  苏ICP备05045772号 当前在线人数: