【问题标题】:web service - SQL connection stringWeb 服务 - SQL 连接字符串
【发布时间】:2015-02-11 11:39:40
【问题描述】:

我已经构建了一个 .asmx Web 服务,它从本地 sql server 2014 数据库中检索信息。 在 localhost 上一切正常,但在将 Web 服务发布到 Azure 后出现错误:

“System.Web.Services.Protocols.SoapException”类型的未处理异常 发生在 System.Web.Services.dll 中

附加信息:服务器无法处理请求。 ---> 一个 发生网络相关或特定于实例的错误,同时 建立与 SQL Server 的连接。找不到服务器或 无法访问。验证实例名称是否正确,并且 SQL Server 配置为允许远程连接。 (提供者:SQL 网络接口,错误:26 - 定位服务器/实例时出错 指定)

SQL Server 配置为允许远程连接。

我的连接字符串是这样的:

string con2 = @"Data Source=OfficePc\MSSQLSERVER2014;Initial Catalog=Database;Persist Security Info=True;User ID=Admin;Password=123456";

错误是连接字符串中缺少某些内容的结果,还是我缺少一些配置更改?

【问题讨论】:

  • 您确定这是正确的连接字符串吗?如果您使用 Visual Studio,您可以在服务器资源管理器窗口中查看它。
  • 您基于 Azure 的 Web 服务知道“OfficePc\MSSQLSERVER2014”在哪里?那不应该是IP还是什么的?

标签: c# sql-server web-services azure connection


【解决方案1】:

正如 Paul 在问题下的评论中提到的,您的连接字符串指向本地数据库资源(大概在您的开发机器上)。即使您将本地数据库服务器配置为支持远程连接,地址 OfficePc\MSSQLSERVER2014 也是不可寻址的,因为它不等同于机器地址(IP 地址)。

您的应用需要通过可访问的 IP 地址连接到您的数据库(这可能需要您在本地网络上进行一些端口转发,或者在防火墙上打开端口)。

或者,您可以将数据库迁移到 Azure(使用 VM 中的 SQL Server 或使用 SQL 数据库服务)。

请注意:如果您从 Azure 访问本地(本地)数据库服务器,则会增加延迟以及一些出站带宽成本。

【讨论】:

    【解决方案2】:

    SQL Server 实例似乎没有运行或无法访问。尝试使用 SSMS 连接到相同的数据库,如果出现相同的错误,则说明实例未运行。

    【讨论】:

    • 连接字符串正在尝试引用 Azure 中不存在的本地数据库服务器。
    【解决方案3】:

    大部分错误发生在找不到数据库服务器时。重新检查服务器名称(数据源)是否正确提及。如果您手动生成连接字符串,请使用 .uld 文件生成连接字符串。

    使用 .udl 文件自动生成连接字符串:

    1. 创建一个 sampe.txt 文件。
    2. 将其重命名为 sample.udl 文件。
    3. 然后双击它,它会显示标题为“数据链接属性”的窗口。
    4. 在那里配置连接。
    5. 然后使用测试连接按钮测试连接。
    6. 然后用记事本打开文件。它将向您显示确切的连接字符串。

    进一步参考检查:MSDN

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-03-04
      • 2018-02-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-07-09
      • 2012-12-31
      • 2014-01-14
      相关资源
      最近更新 更多