惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

量子位
Stack Overflow Blog
Stack Overflow Blog
人人都是产品经理
人人都是产品经理
The GitHub Blog
The GitHub Blog
Engineering at Meta
Engineering at Meta
Vercel News
Vercel News
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
Y
Y Combinator Blog
The Cloudflare Blog
Last Week in AI
Last Week in AI
B
Blog
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
T
Tailwind CSS Blog
V
Visual Studio Blog
博客园 - 三生石上(FineUI控件)
小众软件
小众软件
Google DeepMind News
Google DeepMind News
D
DataBreaches.Net
博客园 - 司徒正美
B
Blog RSS Feed
Microsoft Azure Blog
Microsoft Azure Blog
罗磊的独立博客
Hugging Face - Blog
Hugging Face - Blog
L
LangChain Blog

博客园 - 永春

随笔 随笔 换个活法 项目做的很无语 五分钟叫你看懂美国金融危机的成因和巨大危害[转] Sqlserver中的日期类型值不能小于1753年 C#读取WORD时发生“拒绝访问”及“消息筛选器显示应用程序正在使用中”异常的处理 Asp.Net之自定义表达式构造器(ExpressionBuilder) [Sharepoint2007对象模型]第三回:Web应用程序(SPWebApplication) Sharepoint2007对象模型系列 [Sharepoint2007对象模型]第二回:Web应用程序服务(SPWebService) [Sharepoint2007对象模型]第一回:服务器场(SPFarm) C#强化系列文章九:代码访问安全性使用 项目经理的个人修养 《博客园精华集--Sharepoint分册》第三轮结果 《博客园精华集》Sharepoint+MOSS分册第2轮筛选结果文章列表 Asp.Net页面执行流程分析 C#强化系列文章八:HttpModule,HttpHandler,HttpHandlerFactory简单使用 在MOSS中使用.Net3.5中的Ajax功能
asp+access在64位上的问题
永春 · 2009-02-19 · via 博客园 - 永春

今天帮人解决一个老的asp的网站,弄了半天。

原来的机器上没问题,换一台机器后一直有问题,原来的代码中也没有什么日志处理,也没什么报错,这些东西在编码时还是很有必要的。

asp很长时间没弄,都快忘了,只能一步步的加调试信息,最后在连接的后面加了一个调试才找到真正的错误原因: 

conn.open connstr
  If   Err   
<>   0   Then   
  Response.Write   
"11111<br><br><b>"   &   Err.Description   &   "</b>"   
  End   If
end 
if

提示错误:未指定提供程序,也没有指派的默认提供程序

百度了半天,终于发现是64位系统的问题,因为新的机器装的是64位的机器

这是由于你的系统是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 位版本中不可用。
也就是说,如下两种连接字符串都已经无法正常工作了:
“Provider
=Microsoft.Jet.OLEDB.4.0;Data Source="&Server.mappath(db)
"
driver=Microsoft Access Driver (*.mdb);DBQ="&Server.MapPath(db) 
因此,我们不得不修改IIS运行环境为32位

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

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

将IIS修改为32位的方法如下:

ASP.NET 2.032 位版本
要运行 
32 位版本的 ASP.NET 2.0,请按照以下步骤操作: 
1. 单击“开始”,单击“运行”,键入 cmd,然后单击“确定”。 
2. 键入以下命令启用 32 位模式:
cscript 
%SYSTEMDRIVE%\inetpub\adminscripts\adsutil.vbs SET W3SVC/AppPools/Enable32bitAppOnWin64 1 
3. 键入以下命令,安装 ASP.NET 2.032 位)版本并在 IIS 根目录下安装脚本映射:
%SYSTEMROOT%\Microsoft.NET\Framework\v2.0.50727\aspnet_regiis.exe -
4. 确保在 Internet 信息服务管理器的 Web 服务扩展列表中,将 ASP.NET 版本 2.0.4060732 位)的状态设置为允许。 

ASP.NET 

2.064 位版本
要运行 
64 位版本的 ASP.NET 2.0,请按照以下步骤操作: 
1. 单击“开始”,单击“运行”,键入 cmd,然后单击“确定”。 
2. 键入以下命令禁用 32 位模式:
cscript 
%SYSTEMDRIVE%\inetpub\adminscripts\adsutil.vbs SET W3SVC/AppPools/Enable32bitAppOnWin64 0 
3. 键入以下命令,安装 ASP.NET 2.0 版本并在 IIS 根目录下安装脚本映射:
%SYSTEMROOT%\Microsoft.NET\Framework64\v2.0.50727\aspnet_regiis.exe -
4. 确保在 Internet 信息服务管理器的 Web 服务扩展列表中,将 ASP.NET 版本 2.0.40607 的状态设置为允许。 
注意:ASP.NET 
2.0 的内部版本可能随当前发行的内部版本的变化而变化。这些步骤适用于内部版本 2.0.40607