【发布时间】:2018-01-04 07:27:35
【问题描述】:
我正在运行 Windows 10 Home(版本 1709),在本地计算机上使用 SQL Server 2014 和 IIS(版本 10.0.16299.15)。浏览器是 Chrome。
我已经成功建立了一个 ODBC 连接(参见代码 cmets),并且正在通过名称调用它。我没有提供用户名/密码,因为我使用的是 Windows 身份验证。网站的 IIS 设置为“应用程序用户(直通身份验证)”
您可以看到我的注释行,我尝试了 3 种不同的方法:(1)创建 cn.ConnectionString 并使用 cn.Open; (2) 在DSN前加上“DSN=”; (3) 仅使用 DSN。但它们都给出相同的输出(见下文)。
我在网页中的代码是:
<%
response.write("Start<br>")
set cn = Server.CreateObject("ADODB.Connection")
Set cmd = Server.CreateObject("ADODB.Command")
cmd.CommandType = adCmdStoredProc
cmd.CommandText = "sp_test"
' This is an ODBC connection DSN, Windows authentication
' Platform: 32/64 bit; Driver: SQL Server Native Client 10.0
' 1st solution
'cn.ConnectionString = "Provider=SQLOLEDB; Server=(local); Database=sample"
response.write("Ready to open connection<br>")
'cn.Open
' 2nd solution
'cn.Open "DSN=SSNC10UserEnvy360"
' 3rd solution
cn.Open "SSNC10UserEnvy360"
response.write("Connection Object Opened<br>")
cmd.ActiveConnection = cn
cn.close
response.write("Connection is closed<br>")
%>
浏览器中的输出是以下通用消息(尽管我已将此网站的 IIS 设置为“详细”**):
Start
Ready to open connection
An error occurred on the server when processing the URL. Please contact the system administrator.
If you are the system administrator please click here to find out more about this error.
我做错了什么无法连接??
【问题讨论】:
-
您首先需要在您的 Web 应用程序的 IIS ASP 部分中启用向浏览器发送错误。见stackoverflow.com/a/29962918/692942
-
谢谢!在 IIS Mgr 中的站点下,我选择了我正在使用的站点,双击 ASP,并将“启用父路径”和“将错误消息发送到浏览器”都设置为 True。但我仍然得到通用的味精,它恰好是“脚本错误消息”中的味精。仅供参考,我在我的应用程序事件查看器中看到,每次我刷新 asp pg 时,都有一个用于任务类别“登录”的 MSSQLSERVER 的信息消息。我是否真的在我的 Open 通话中成功了,但是却因另一个隐藏的错误而失败了?
-
已解决。我意识到事件日志中的信息级 MSSQLSERVER“登录”消息实际上是失败消息!我在 Management Studio 中解决了这两个问题:一个是将我的登录 (NT AUTHORITY\IUSR) 添加到安全/登录列表中;另一个通过向数据库添加权限。
标签: sql-server iis asp-classic