iis7.5下运行asp access站点

先说环境:

OS: windows 2008 r2 x64

IIS: 7.5

脚本: asp

DB:access


前言(原文链接 http://ddbiz.com/?p=101)

老系统(OS < windows 2008)上的网站有很多,php的都已经迁移到centos下去了;.net已经迁移到windows 2008 iis 7.5了,有用.net 2.x的,也有用.net 3.x,频繁更新的多数在.net 4.x;现在剩下些要命的 asp+access的更古老的站点。对于这些站,客户也只是偶尔用用,不能指望他们去升级代码。老环境将淘汰,asp+access迁移到新环境(iis 7.5)的工作也迫在眉睫。

测试

用一个客户的asp站点做了个迁移测试,先把遇到的问题列在下面:

  • 1. 80040e09不能更新。数据库或对象为只读
  • 2. 800a0e7a 未找到提供程序。该程序可能未正确安装
  • 3. 800a0bbc 写入文件失败
  • 4. ASP_0104_:_80004005 不允许操作
  • 5. 80004005 未指定的错误
  • 5. 80004005 无法从指定的数据表中删除

从错误的代码上看,多数与数据的操作有关系,只是不同的操作,比如:增加、删除、修改,遇到错误返回了不同的错误信息,然后是文件目录的读写问题。 对于iis 7.5 +asp +access 在网上有很多方法,比如:

> 为 %WINDIR%\ServiceProfiles\NetworkService\AppData\Local\Temp增加 Authenticated Users 的读写权限
> 或者修改 %WINDIR%\System32\inetsrv\config\applicationHost.config 文件


不是说这些方法不好,而是很不好,毕竟不能为了一个或者几个用asp的站点,降低整个系统的安全性。因此我采用另外的方式,也能达到预期的效果。

设置方式

1. 站点的应用缓冲池设置(测试中我们命名其为 defaultasp )

ApplicationPoolIdentity 是iis7.5中的非常特色的功能,具体介绍不赘述,可参考MS的文档。应用缓冲池依然采用 applicationpoolidentity 的方式,启用32位应用程序模式,并不加载用户配置文件。

2. access 数据文件的访问控制

虽然我们仍然采用了应用虚拟账户(applicationpoolidentity)的方式,但是我们依然无法通过设置仅针对此站点的虚拟账户(如: iis apppool\defaultasp)的访问方式来设置安全级别。对于数据文件(access.mdb),只能为此文件的访问增加一个 Authenticated Users 用户组的修改/读取权限来达到读写数据的要求。

3. 用户上传文件的限制

用户上传文件所需要的目录权限,和2.中的mdb文件访问控制设置类似,但是只需要增加针对此站点的虚拟访问用户即可,增加 IIS APPPOOL\defaultasp 的修改、写入权限即可。(注:此用户是查询不到的,需要手工敲入)

4.  其他说明
iis 7.5默认是不安装在新系统上的。如果要在windows 2008 r2 上启用iis的话,需要新增角色。同样,asp也是不能默认安装在新增的角色中的,需要你手工钩选,此处不赘述,仅提醒之。

好了,至此这个asp+access的站点已经可以运行了


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值