【问题标题】:C# database connection error on remote server远程服务器上的 C# 数据库连接错误
【发布时间】:2013-10-10 07:40:56
【问题描述】:

我曾经在我的机器上运行一个 C# 网站,并将它用于数据库连接设置(Windows 身份验证):

<add name="GPSEntities2" connectionString="metadata=res://*/;provider=System.Data.SqlClient;provider connection string=&quot;data source=.;initial catalog=GPS;integrated security=True;multipleactiveresultsets=True;App=EntityFramework&quot;" providerName="System.Data.EntityClient" />
<add connectionString="data source=.\SQLEXPRESS;Integrated Security=SSPI;AttachDBFilename=|DataDirectory|aspnetdb.mdf;User Instance=true" name="LocalSqlServer" providerName="System.Data.SqlClient" />

现在我为我的网站找到了一个主机,他们给了我这些信息:

Database server: Local MS SQL server
DB Name: mydbname_data   (just an example)
User: myuser_asd
Pass: mypassword

我尝试了各种更改连接设置的方法,但都没有奏效。

执行尝试访问数据库的操作时收到的错误是:

System.Data.SqlClient.SqlException: Login failed for user 'V-WIN13245\IWPD_15(mydbname)'.î

我的问题是如何更改此字符串(我的机器上的 Windows 身份验证)

<add connectionString="data source=.\SQLEXPRESS;Integrated Security=SSPI;AttachDBFilename=|DataDirectory|aspnetdb.mdf;User Instance=true" name="LocalSqlServer" providerName="System.Data.SqlClient" />

转换成在主机上使用用户名和密码的等效字符串

【问题讨论】:

  • 连接字符串中的IWPD_15 用户名是您的User 吗?
  • 可以分享一下连接字符串吗?
  • 您确定将解决方案部署到主机时使用了正确的连接字符串吗?如果使用 VS 部署,可以在发布配置对话框中指定连接字符串。
  • V-WIN13245\IWPD_15(mydbname) 无权访问您尝试连接的数据库。您可以在 SQL Server 中向此用户授予权限
  • 发布您的 C# 代码(包括连接字符串)。鉴于它是一个远程服务器,一些故障排除可能会代表他们配置 SQL 并添加相关权限等,但如果您将其发布在此处,我们可以从检查您最后的代码开始。

标签: c# sql-server database entity-framework


【解决方案1】:

试试这个,我已经根据你给的信息字段了

<add name="LocalSqlServer" connectionString="Data Source=(local);Initial Catalog=mydbname_data;Persist Security Info=True;User ID=myuser_asd;Password=mypassword" providerName="System.Data.SqlClient"/>

附注如果服务器数据库没有启用TCP/IP protocol,那么您将无法使用开发环境中的 IP 地址访问数据库。您可以使用上述连接字符串从您的生产环境连接到数据库。

【讨论】:

  • 不是本地的,是远程连接的。
  • “现在我为我的网站找到了一个主机,他们给了我这些信息:数据库服务器:本地 MS SQL server”,正如OP所说的
  • 如果只是服务器上的网站,你是对的,但他一开始说“在我的机器上”
  • 我不需要远程连接到主机。我需要为我的网站配置连接字符串,它现在在主机上。
  • 非常感谢。你的答案是完美的,但即便如此我还是有一个愚蠢的问题。我需要更改“GPSEntities2”而不是“LocalSqlServer”连接。再次感谢
【解决方案2】:

添加“集成安全=True;”在连接字符串中并检查它。请参考[SqlConnection.ConnectionString].1

【讨论】:

    【解决方案3】:

    您应该使用给定的主机 ip 和给定的用户名和密码更改您的数据源。如果您仍然遇到相同的错误,您应该检查给定帐户与管理工作室,登录属性。连接字符串将是这样的:

    <add name="ConnectionString" connectionString="Data Source=your_server_ip_here;
    Initial Catalog=your_database_name;User Id=your_database_username;
    Password=your_database_password; Connection Timeout=1000000"/>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-03-17
      • 2018-05-28
      • 1970-01-01
      • 1970-01-01
      • 2020-06-02
      相关资源
      最近更新 更多