2011-10-16 58 views
1

我已经创建了链接服务器到Excel spreedsheet。没关系,在SQL Server中工作我可以在查询分析器中查询excel文件。SQL Server链接服务器不能在ASP Classic中工作

但是,当我想在我的ASP页面访问此链接服务器:

Set pishbini = Server.CreateObject("ADODB.Recordset") 

pishbini.ActiveConnection = MM_semmet_STRING 
pishbini.Source = "SELECT * FROM OPENQUERY(SemnanmetWeekly, 'SELECT * FROM [DayPish$]')" 
pishbini.CursorType = 0 
pishbini.CursorLocation = 2 
pishbini.LockType = 1 
pishbini.Open() 

SemnanmetWeekly是在SQL Server中,我在我的ASP页面得到这个错误链接服务器的名称:

Microsoft OLE DB提供程序的ODBC驱动程序错误 '80040E14'

[微软] [ODBC SQL Server驱动程序] [SQL服务器] OLE DB提供程序 “Microsoft.Jet.OLEDB.4.0” 对于l墨水服务器“SemnanmetWeekly”返回 消息“无法启动您的应用程序。工作组信息文件 丢失或完全由其他用户打开。“

/Daypish.asp,第15行

IUSR(IIS用户)完全访问excel文件,我已经打了所有在我的链接服务器选项中的不同选项,如模仿或访问带有管理员帐户的Excel文件,但错误保持不变!

我更喜欢不更改代码,因为我只是在这台服务器上进行管理。一直在旧服务器上工作,但因为我们将它移动到新的服务器,它停止工作我在这里失踪?

回答

1

与权限无关。我认为你使用Windows身份验证登录到Sql Server,一切正常,你是老板。但是,如果ASP中的连接是通过SQL身份验证的,则会出现此错误。所以,你应该添加一个类似于下面的查询的链接服务器登录。

Exec master..sp_addlinkedsrvlogin 
@rmtsrvname = N'SemnanmetWeekly', 
@useself = N'False', 
@locallogin = N'sa', /* replace your own - same as sql server authenticated account */ 
@rmtuser = NULL, 
@rmtpassword = NULL 

然后你就可以连接到SemnanmetWeekly在你的ASP应用程序。

+0

谢谢,解决了我的问题,现在它可以工作,但我有另一个问题,Excel文件被锁定,我们无法覆盖它们。 Sql Server或IIS锁定它们的任何想法? –