我的情况是:1.我在我的查询分析器上连接另外一台电脑的数据库是可以连接上的.
2.我自己写了一个小程序测试也是可以连接上的.但在另外一个程序中(一个windows service安装程序,已经安装)无法连接远程数据库.报错如下:
2012/9/17 13:40:13,failedSystem.Data.SqlClient.SqlException (0x80131904): 用户 'MyUser' 登录失败。原因: 未与信任 SQL Server 连接相关联。
   at System.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception, Boolean breakConnection)
   at System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning()
   at System.Data.SqlClient.TdsParser.Run(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj)
   at System.Data.SqlClient.SqlInternalConnectionTds.CompleteLogin(Boolean enlistOK)
   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 MyService.MyService.GetMyData(DateTime date)
   at MyService.MyService.MyMethod()

解决方案 »

  1.   

     用户 'MyUser' 登录失败。原因: 未与信任 SQL Server 连接相关联。
    ==> 
    检查下这个用户是否有权限登录
      

  2.   

    企业管理器--> 右键你的实例(就是那个有绿色图标的)--> 属性--> 安全--> 改为sql与window混合 
      

  3.   

    应该不是。。我试过了。远程的数据库是2000的而且里面的logins用户都无法进行设置,我想把其中的一个用户权限给改了,但是却无法编辑这该如何是好啊!!
      

  4.   

    挺奇怪的,贴下connectionstring. 是不是有防火墙什么的。
      

  5.   

    <add name="MyConnectionString" connectionString="data source=Ip地址;initial catalog=MyDataBase;integrated security=false;User Id=MyUser;Pwd=123456" providerName="System.Data.SqlClient"/>我的问题是我在虚拟机上测试的时候是可以连接的,可是到了另外两台机器上就不可以了,我把服务装在A机上的,数据库在B机上。在B机上我开通了1433端口,是在防火墙上添加的例外,但是在A机上telnet的时候无法telnet通,可是445端口却可以telnet通。不明白为什么