C# web服务-SQL连接字符串

C# web服务-SQL连接字符串,c#,sql-server,web-services,azure,connection,C#,Sql Server,Web Services,Azure,Connection,我构建了一个.asmx web服务,它从本地sql server 2014数据库检索信息。 在localhost上一切正常,但在将web服务发布到Azure后,我发现错误: “System.Web.Services.Protocols.SoapException”类型的未处理异常 发生在System.Web.Services.dll中 其他信息:服务器无法处理请求。-->A. 运行时发生与网络相关或特定于实例的错误 正在建立与SQL Server的连接。找不到服务器,或者 无法访问。验证实例名称

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

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

其他信息:服务器无法处理请求。-->A. 运行时发生与网络相关或特定于实例的错误 正在建立与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";

该错误是由于连接字符串中缺少某些内容造成的,还是我缺少某些配置更改?

看起来SQL Server实例未运行或无法访问。尝试使用SSMS连接到同一个数据库,如果出现相同的错误,则实例未运行。

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

要使用.udl文件自动生成连接字符串,请执行以下操作:

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

  • 进一步参考检查:

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

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

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


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

    您确定这是正确的连接字符串吗?例如,如果您使用Visual Studio,您可以在服务器资源管理器窗口中进行检查。您基于Azure的web服务知道“OfficePc\MSSQLSERVER2014”在哪里?这不应该是IP或其他什么吗?连接字符串正在尝试引用Azure中不存在的本地数据库服务器。