我已经构建了一个.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";
错误是连接字符串中缺少某些内容的结果,还是我错过了一些配置更改?
答案 0 :(得分:1)
正如保罗在问题评论中提到的,您的连接字符串指向本地数据库资源(可能在您的开发计算机上)。即使您将本地数据库服务器配置为支持远程连接,地址OfficePc\MSSQLSERVER2014
也不可寻址,因为它不等于机器地址(IP地址)。
您的应用需要通过可访问的IP地址连接到您的数据库(可能需要您在本地网络上执行某些端口转发,或打开防火墙上的端口)。
或者,您可以将数据库迁移到Azure(使用VM中的SQL Server或SQL数据库服务)。
请记住:如果您从Azure访问本地(内部部署)数据库服务器,则会增加延迟,以及一些出站带宽成本。
答案 1 :(得分:0)
看起来SQL Server实例未运行或无法访问。尝试使用SSMS连接到同一个数据库,如果得到相同的错误,则表示实例未运行。
答案 2 :(得分:0)
主要是在找不到数据库服务器时发生错误。是否正确提及服务器名称(数据源),请重新检查。如果手动生成连接字符串,请使用.uld文件生成连接字符串。
使用 .udl 文件自动生成连接字符串:
- 创建一个sampe.txt文件。
- 将其重命名为sample.udl文件。
- 然后双击它,它会显示名为“数据链接属性”的窗口。
- 在那里配置连接。
- 然后使用测试连接按钮测试连接。
- 然后用记事本打开文件。它会显示确切的连接字符串。
醇>
进一步参考检查:MSDN