Web服务 - SQL连接字符串

时间:2015-02-11 11:39:41

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

我已经构建了一个.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";

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

3 个答案:

答案 0 :(得分:1)

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

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

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

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

答案 1 :(得分:0)

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

答案 2 :(得分:0)

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

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

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

enter image description here

进一步参考检查:MSDN