使用Web服务时无法连接到SQL Server。我收到以下错误:
System.Web.Services.Protocols.SoapException: Server was unable to process request.
---> System.Data.SqlClient.SqlException: An error has occurred while establishing a connection to the server. When connecting to SQL Server 2005, this failure may be caused by the fact that under the default settings SQL Server does not allow remote connections.
(provider: SQL Network Interfaces, error: 26 - Error Locating Server/Instance Specified)
at System.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception, Boolean breakConnection)
at System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj)
at System.Data.SqlClient.TdsParser.Connect(ServerInfo serverInfo, SqlInternalConnectionTds connHandler, Boolean ignoreSniOpenTimeout, Int64 timerExpire, Boolean encrypt, Boolean trustServerCert, Boolean integratedSecurity, SqlConnection owningObject)
at System.Data.SqlClient.SqlInternalConnectionTds.AttemptOneLogin(ServerInfo serverInfo, String newPassword, Boolean ignoreSniOpenTimeout, Int64 timerExpire, SqlConnection owningObject)
at System.Data.SqlClient.SqlInternalConnectionTds.LoginNoFailover(String host, String newPassword, Boolean redirectedUserInstance, SqlConnection owningObject, SqlConnectionString connectionOptions, Int64 timerStart)
at System.Data.SqlClient.SqlInternalConnectionTds.OpenLoginEnlist(SqlConnection owningObject, SqlConnectionString connectionOptions, String newPassword, Boolean redirectedUserInstance)
at System.Data.SqlClient.SqlInternalConnectionTds..ctor(DbConnectionPoolIdentity identity, SqlConnectionString connectionOptions, Object providerInfo, String newPassword, SqlConnection owningObject, Boolean redirectedUserInstance)
at System.Data.SqlClient.SqlConnectionFactory.CreateConnection(DbConnectionOptions options, Object poolGroupProviderInfo, DbConnectionPool pool, DbConnection owningConnection)
at System.Data.ProviderBase.DbConnectionFactory.CreatePooledConnection(DbConnection owningConnection, DbConnectionPool pool, DbConnectionOptions options)
at System.Data.ProviderBase.DbConnectionPool.CreateObject(DbConnection owningObject)
at System.Data.ProviderBase.DbConnectionPool.UserCreateRequest(DbConnection owningObject)
at System.Data.ProviderBase.DbConnectionPool.GetConnection(DbConnection owningObject)
at System.Data.ProviderBase.DbConnectionFactory.GetConnection(DbConnection owningConnection)
at System.Data.ProviderBase.DbConnectionClosed.OpenConnection(DbConnection outerConnection, DbConnectionFactory connectionFactory)
at System.Data.SqlClient.SqlConnection.Open()
at Service.balance(String acntno) in c:\Inetpub\wwwroot\projnew_nithya\webservice\App_Code\Service.cs:line 30
--- End of inner exception stack trace ---
答案 0 :(得分:2)
错误消息确实已经告诉你它(最有可能)是什么:
System.Web.Services.Protocols.SoapException:服务器无法处理请求。 ---> System.Data.SqlClient.SqlException:建立与服务器的连接时发生错误。连接到SQL Server 2005时,此故障可能是由于SQL Server不允许远程连接的默认设置下的 。 (提供者:SQL网络接口,错误:26 - 在指定服务器/实例时出错)
您尝试连接的SQL Server是否配置为允许远程连接(来自运行Web服务的服务器)??
如果不是 - >去做!这应该会有所帮助。
马克
答案 1 :(得分:1)
您的Web服务器看起来与SQL服务器不在同一台计算机上。
您需要将SQL Server配置为接受远程连接。
这是使用SQL Server中的“表面区域配置工具”
完成的答案 2 :(得分:0)
即使您未在SQL Server中激活混合身份验证(即SQL和Windows身份验证),也可能会收到此错误消息。我曾经历过这一次。
答案 3 :(得分:0)
假设您使用的是可以访问SQL Server外围应用配置工具的SQL服务器,请执行以下步骤
打开SQL Server外围应用配置工具 在那个开放的服务和连接的表面区域配置中 在左窗格中单击“数据库引擎”下的“远程连接” 选择单选按钮本地和远程连接。 单击“应用”按钮。 它将弹出一条消息,表明在重新启动数据库实例时将启用此功能。
重新启动实例应解决您的问题。
如果您使用的是无法更改这些设置的实例,请与您的管理员联系。
以上应该可以解决问题。
如果仍然无法访问,请检查防火墙以允许SQL Server实例和SQL浏览器建立连接。
...问候
Kalpak L