我一直在寻找如何连接到本地SQL数据库的时间。我简直不敢相信这很困难。无论如何,我认为我使用此代码更加正确。
<%
Dim myConnection as System.Data.SqlClient.SqlConnection
Dim myCommand as System.Data.SqlClient.SqlCommand
myConnection = New System.Data.SqlClient.SqlConnection("Data Source=localhost;Initial Catalog=dbtest;Integrated Security=True")
myConnection.Open()
%>
然而,它仍然无效。我不知道从哪里开始,因为我在页面加载时也会收到此消息:
运行时错误
说明:服务器上发生应用程序错误。此应用程序的当前自定义错误设置可防止远程查看应用程序错误的详细信息(出于安全原因)。但是,它可以由运行在本地服务器计算机上的浏览器查看。
详细信息:要在远程计算机上查看此特定错误消息的详细信息,请在位于当前Web根目录中的“web.config”配置文件中创建标记应用。然后,此标记应将其“mode”属性设置为“Off”。
我创建了一个web.config文件,它没有改变任何东西。我迷路了。任何帮助表示赞赏!
堆栈跟踪:[SqlException (0x80131904):无法打开数据库 登录请求“dbtest”。该 登录失败。用户登录失败 'IIS APPPOOL \ DefaultAppPool'。]
System.Data.SqlClient.SqlInternalConnection.OnError(SQLEXCEPTION exception,Boolean breakConnection) +6244425 System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj)+245
System.Data.SqlClient.TdsParser.Run(RunBehavior runBehavior,SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler,TdsParserStateObject stateObj)+2811
System.Data.SqlClient.SqlInternalConnectionTds.CompleteLogin(布尔 enlistOK)+53
System.Data.SqlClient.SqlInternalConnectionTds.AttemptOneLogin(ServerInfo serverInfo,String newPassword, Boolean ignoreSniOpenTimeout,Int64 timerExpire,SqlConnection 拥有对象)+248
System.Data.SqlClient.SqlInternalConnectionTds.LoginNoFailover(字符串 host,String newPassword,Boolean redirectedUserInstance,SqlConnection owningObject,SqlConnectionString connectionOptions,Int64 timerStart) +6260362 System.Data.SqlClient.SqlInternalConnectionTds.OpenLoginEnlist(SqlConnection) owningObject,SqlConnectionString connectionOptions,String newPassword, Boolean redirectedUserInstance) +6260328 System.Data.SqlClient.SqlInternalConnectionTds..ctor(DbConnectionPoolIdentity) identity,SqlConnectionString connectionOptions,Object providerInfo,String newPassword, SqlConnection owningObject,Boolean redirectedUserInstance)+354
System.Data.SqlClient.SqlConnectionFactory.CreateConnection(DbConnectionOptions options,Object poolGroupProviderInfo, DbConnectionPool池,DbConnection 拥有连接)+703
System.Data.ProviderBase.DbConnectionFactory.CreatePooledConnection(的DbConnection owningConnection,DbConnectionPool pool,DbConnectionOptions选项)+54 System.Data.ProviderBase.DbConnectionPool.CreateObject(的DbConnection 拥有对象)+6261592
System.Data.ProviderBase.DbConnectionPool.UserCreateRequest(的DbConnection 拥有对象)+81
System.Data.ProviderBase.DbConnectionPool.GetConnection(的DbConnection 拥有对象)+1657
System.Data.ProviderBase.DbConnectionFactory.GetConnection(的DbConnection 拥有连接)+88
System.Data.ProviderBase.DbConnectionClosed.OpenConnection(的DbConnection outerConnection,DbConnectionFactory connectionFactory)+6265031
System.Data.SqlClient.SqlConnection.Open() +258 ASP.index_aspx .__ Render__control1(HtmlTextWriter __w,Control parameterContainer)+71 System.Web.UI.Control.RenderChildrenInternal(HtmlTextWriter 作家,ICollection孩子们)+115
System.Web.UI.Page.Render(HtmlTextWriter的 作家)+38
System.Web.UI.Page.ProcessRequestMain(布尔 includeStagesBeforeAsyncPoint,Boolean includeStagesAfterAsyncPoint)+4240
答案 0 :(得分:7)
就在这里
无法打开数据库“dbtest” 登录请求。登录 失败。用户'IIS登录失败 APPPOOL \默认应用'
App Pool身份帐户在SQL Server中设置,但未在数据库dbtest中设置。如果无法连接到SQL Server实例,则会收到不同的错误消息,但是您正在连接以获取上述错误消息.1
所以,在SQL中:
USE dbtest
GO
CREATE USER [IIS APPPOOL\DefaultAppPool] FROM LOGIN [IIS APPPOOL\DefaultAppPool]
编辑:
当你连接到“数据库”时,你实际上认证了3次(基本上)
在这种情况下,您在SQL Server中设置为登录,但未在SQL Server实例中托管的目标数据库中设置。
答案 1 :(得分:1)
正确放置CustomError标记和值,如:
<configuration>
<system.web>
<customErrors mode="Off"/>
</system.web>
</configuration>
这会向您公开确切的问题。
答案 2 :(得分:0)
尝试设置数据源=(本地)
答案 3 :(得分:0)
您是否遵循了所有说明并确保web.config中的customerErrors标记如下所示:
<customErrors mode="Off" />
真正的错误似乎是用户ASP.Net正在运行,因为它没有登录数据库的权限。