2011-11-18 53 views
0

我创建了一个使用Trusted Connection字符串连接到SQL Server Express x64的Winform。办公网络SQLEXPRESS - 连接Winform问题

在开发机(SQL Server在其上运行也一样)在WinForm工程100%,生成的连接字符串是:

Persist Security Info=False; 
Integrated Security=true; 
Initial Catalog=BushBreaksLodgeManager; 
server=.\SQLEXPRESS 

当我尝试联网PC上一样赢形式它无法连接。在远程机器上,我可以看到在开发计算机通过网络的地方,即\\JOHN-WIN7PC

远程PC的产生的连接字符串是:

Persist Security Info=False; 
Integrated Security=true; 
Initial Catalog=BushBreaksLodgeManager; 
server=\\JOHN-WIN7PC\SQLEXPRESS 

我也启用了TCP-IP SQL Server上(它被设置为<default> ),关闭了所有的防火墙,防恶意软件(不应该这样做会干扰),防病毒软件也不会安装在任何一台机器上。

SQL database settings are as follows: 
================================================== 
Authentication method: Windows Authentication 
Database: BushBreaksLodgeManager 
ServerName: JOHN-WIN7PC\SQLEXPRESS 
Instancename: SQLEXPRESS 
Computername: JOHN-WIN7PC 

Sql Server settings 
================================================== 
Mixed mode (Win auth and Sql Server) 
Connections -> Allow remote connections = true 

在这方面的任何帮助,我很茫然,将不胜感激。

我已经粘贴了以下异常:

2011/11/18 04:55:50 PM : Process: UtilsDatabase -> TestDatabaseConnection 
2011/11/18 04:56:05 PM : Process: UtilsDatabase -> TestDatabaseConnection Connection failed 
2011/11/18 04:56:05 PM : Settings value -> UseIntergratedSecurity: False 
2011/11/18 04:56:05 PM : Settings value -> Server: \\JOHN-WIN7PC\SQLEXPRESS 
2011/11/18 04:56:05 PM : Settings value -> Database name: BushBreaksLodgeManager 
2011/11/18 04:56:05 PM : Connection String: Persist Security Info=False;Integrated Security=true;Initial Catalog=BushBreaksLodgeManager;server=\\JOHN-WIN7PC\SQLEXPRESS 

==================== New Exception ==================== 
2011/11/18 04:56:05 PM 

A network-related or instance-specific error occurred while establishing a connection to SQL Server. The server was not found or was not accessible. Verify that the instance name is correct and that SQL Server is configured to allow remote connections. (provider: SQL Network Interfaces, error: 25 - Connection string is not valid) 

.Net SqlClient Data Provider 

    at System.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception, Boolean breakConnection) 
    at System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning() 
    at System.Data.SqlClient.TdsParser.Connect(ServerInfo serverInfo, SqlInternalConnectionTds connHandler, Boolean ignoreSniOpenTimeout, Int64 timerExpire, Boolean encrypt, Boolean trustServerCert, Boolean integratedSecurity) 
    at System.Data.SqlClient.SqlInternalConnectionTds.AttemptOneLogin(ServerInfo serverInfo, String newPassword, Boolean ignoreSniOpenTimeout, TimeoutTimer timeout, SqlConnection owningObject) 
    at System.Data.SqlClient.SqlInternalConnectionTds.LoginNoFailover(ServerInfo serverInfo, String newPassword, Boolean redirectedUserInstance, SqlConnection owningObject, SqlConnectionString connectionOptions, TimeoutTimer timeout) 
    at System.Data.SqlClient.SqlInternalConnectionTds.OpenLoginEnlist(SqlConnection owningObject, TimeoutTimer timeout, 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 BushBreaksLodgeManager.UtilsDatabase.TestDatabaseConnection() 

Void OnError(System.Data.SqlClient.SqlException, Boolean) 
+0

这是否属于域环境?是否已将运行远程软件的用户创建为服务器上的登录/用户? –

+0

这是2008年还是2005年的版本?我记得在Express 2005中,你必须明确地告诉它接受远程连接。不知道它是如何在版本2008和2008R2。 – ssarabando

+0

不,它完全属于单一办公室。不需要安全性,因此可信连接字符串。他们没有要求任何细节。应该简单地通过提供数据库名称和sql server路径和服务器名称来连接到服务器。 –

回答

0

我认为错误是很简单的。连接到SQL Server时,不要在服务器名称前加上\\,那么应该使用server=JOHN-WIN7PC\SQLEXPRESS而不是server=\\JOHN-WIN7PC\SQLEXPRESS