SQL Server 链接服务器无法在 ASP Classic 中工作

发布于 2024-12-09 20:07:38 字数 968 浏览 8 评论 0原文

我已经创建了一个链接到 Excel 电子表格的服务器。没关系,在 SQL Server 中工作我可以在查询分析器中查询 excel 文件。

但是,当我尝试在我的 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 页面中收到此错误:

用于 ODBC 驱动程序的 Microsoft OLE DB 提供程序错误“80040e14”

[Microsoft][ODBC SQL Server 驱动程序][SQL Server]OLE DB 提供程序 返回链接服务器“SemnanmetWeekly”的“Microsoft.Jet.OLEDB.4.0” 消息“无法启动您的应用程序。工作组信息文件 丢失或被其他用户独占打开。”。

/Daypish.asp,第 15 行

IUSR(IIS 用户)具有对 excel 文件的完全访问权限,我已经在链接服务器中使用了所有不同的选项诸如使用管理员帐户模拟或访问 Excel 文件之类的选项,但错误仍然相同!

我宁愿不更改代码,因为我只在这台服务器上进行管理工作,但自从我们移动它以来,它一直在旧服务器上运行。到新服务器它停止工作。我在这里失踪了?

I've created a linked server to an Excel spreedsheet. It's ok and working in SQL Server I can query excel file in query analyzer.

But when I'm trying to access this link server in my asp page:

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 is the name of linked server in SQL Server I'm getting this error in my asp page:

Microsoft OLE DB Provider for ODBC Drivers error '80040e14'

[Microsoft][ODBC SQL Server Driver][SQL Server]OLE DB provider
"Microsoft.Jet.OLEDB.4.0" for linked server "SemnanmetWeekly" returned
message "Cannot start your application. The workgroup information file
is missing or opened exclusively by another user.".

/Daypish.asp, line 15

IUSR (IIS user) has full access to excel file, I have played with all the different options in in my Link Server Options like impersonating or accessing excel file with administrator account, but error remained the same!

I prefer to not change the code, since I'm only doing administration stuff on this server. it has been working on an old server but since we moved it to new server it stopped working. anything I'm missing here?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

寒尘 2024-12-16 20:07:38

与权限无关。我想你用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

然后您可以在 ASP 应用程序中连接到 SemnanmetWeekly

Not related to permissions. I think you logged in to Sql Server with Windows Authentication, everything is okay, you're the boss. But, if the connection in ASP is SQL authenticated, you get this error. So, you should add a linked server login with a query similar to following.

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

Then you can connect to SemnanmetWeekly in your ASP application.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文