• Vista/Win7操作系统(64位)+IIS7设置常见问题


    注:以下内容同样适用于 Windows 7 系统。

    自从装了Vista(64位),问题就一个一个来。现在就连IIS(7.0.0.0)里运行一个简单的ASP程序都出问题了。在开始正文之前,我想纠正一些错误认识:

    • Vista + IIS7支持Asp+Access无需更改应用程序池。
      以我自己的实践证明,使用默认的DefaultAppPool即可,你甚至可以停用Classic.NET AppPool。
    • Windows Vista Enterprice版本同样含有IIS,当然也可以安装IIS。
      Windows Vista Enterprice:这个版本在Windows Vista Business的基础上增加支持MUI(多语言包),BitLocker和UNIX应用程序支持。这个版本并不准备零售,仅OEM提供给用户。我正使用的系统即是Windows Vista Enterprice,其功能是大于Windows Vista Business的。

    Q1:我的系统里面没有IIS?
    A:系统默认是没有安装IIS的,需要你手动安装。

    依次打开:控制面板\程序\程序和功能,选择我们需要的功能。

    Q2:我访问添加的网站,返回了“An error occurred on the server when processing the URL. Please contact the system administrator”错误?
    A:这个是因为你的程序某处有错误而产生的。并且IIS没有返回具体产生错误的原因。

    需要在IIS中设置一下:

    1. 在左侧的目录树中选择你的网站,在右边的IIS分类下,找到并打开“ASP”:

    2. 展开“编译\调试属性”并设置“将错误发送到浏览器”为True(同时请注意将“启用父路径”选择为True)

    Q3:我又有了新的问题:“不允许的父路径”
    A:(见Q2)

    Q4:“未指定提供程序,也没有指派的默认提供程序。”
    A:这是由于你的系统是64位的,而64位操作系统不支持Microsoft OLE DB Provider for Jet驱动程序,也不支持更早的Microsoft Access Driver (*.mdb)方式连接。

    Microsoft网站有如下说明:(见:http://msdn2.microsoft.com/zh-cn/library/ms141766.aspx)
    用于 Access 和 Excel 数据库的 Microsoft OLE DB Provider for Jet 在 64 位版本中不可用。也就是说,如下两种连接字符串都已经无法正常工作了:

    1. "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="&Server.mappath(db)
    2. "driver=Microsoft Access Driver (*.mdb);DBQ="&Server.MapPath(db)

    因此,我们不得不修改IIS运行环境为32位:

     

    另,SQL数据连接则可以在64位机上运行,链接字符串为:

    1. "PROVIDER=SQLOLEDB;DATA SOURCE="&SqlLocalName&";UID="&SqlUsername&";PWD="&SqlPassword&";
    2. DATABASE="&SqlDatabaseName

    Q5:“磁盘或网络错误”或“未指定的错误”

    1. Microsoft JET Database Engine 错误 '80004005'  
    2. 未指定的错误Microsoft OLE DB Provider for ODBC Drivers 错误 '80004005'  
    3. [Microsoft][ODBC Microsoft Access 驱动程序] 磁盘或网络错误。

    A:产生这样的错误是由于IIS没有读取IE缓存的权限而引起的。(错误取决于你使用哪种方式连接Access数据库)只需设置缓存目录的权限即可:

    1. 打开文件夹:(注意,AppData 文件夹是隐藏文件夹)
      C:\Windows\ServiceProfiles\NetworkService\AppData\Local\
    2. 在Temp上点击右键,依次点击“属性”、“安全”、“编辑”、“添加”,然后输入“Authenticated Users”并点击确定。然后在Authenticated Users的权限里面,设置“完全控制”和“修改”的权限。

    Q6:Q4、Q5的问题我都解决了,但仍然提示错误
    A:此时,估计你的Access驱动已经损坏,需要重新安装或者重新注册msadds.dll(OLE DB Data Shape)提供程序了。
    在运行里面输入下面的命令即可:

    1. (64位系统的命令)REGSVR32 "C:\Program Files (x86)\Common Files\System\Ole DB\MSDASQL.DLL" 
    2. (附:32位的命令)REGSVR32 "C:\Program Files\Common Files\System\ole db\MSDASQL.DLL" 
  • 相关阅读:
    线程
    实数四则运算表达式的计算,C++ 实现
    [Compiling Principles] LEX基本功能的实现
    2010年ImagineCup,我们共同走过
    [WPF] Felix 的线程学习笔记(一)——从Win32的消息循环说起
    [WPF] Felix 的线程学习笔记(二)——从WPF入手,实现简单的多线程
    [ASP] asp 中的ajax使用
    银行家算法C++实现
    [ASP.NET] 事件与委托的处理
    小郁闷
  • 原文地址:https://www.cnblogs.com/uonun/p/1698961.html
Copyright © 2020-2023  润新知