Web 服务 - SQL 连接字符串
web service - SQL connection string
我构建了一个 .asmx 网络服务,它从本地 sql 服务器 2014 数据库检索信息。
在本地主机上一切正常,但在将 Web 服务发布到 Azure 后出现错误:
An unhandled exception of type 'System.Web.Services.Protocols.SoapException'
occurred in System.Web.Services.dll
Additional information: Server was unable to process request. ---> A
network-related or instance-specific error occurred while
establishing a connection to SQL Server. The server was not found or
was not accessible. Verify that the instance name is correct and that
SQL Server is configured to allow remote connections. (provider: SQL
Network Interfaces, error: 26 - Error Locating Server/Instance
Specified)
SQL 服务器配置为允许远程连接。
我的连接字符串如下:
string con2 = @"Data Source=OfficePc\MSSQLSERVER2014;Initial Catalog=Database;Persist Security Info=True;User ID=Admin;Password=123456";
该错误是连接字符串中缺少某些内容的结果,还是我缺少某些配置更改?
看起来 SQL 服务器实例未 运行 或不可访问。尝试使用 SSMS 连接到同一个数据库,如果出现相同的错误,则实例不是 运行.
大多数错误发生在找不到数据库服务器时。重新检查是否正确提及了服务器名称(数据源)。如果您手动生成连接字符串,请使用 .uld 文件生成连接字符串。
使用.udl 文件自动生成连接字符串:
- Create a sampe.txt file.
- Rename it as sample.udl file.
- Then double click on it, It will show you window entitled 'Data Link Properties'.
- Configure the connection there.
- Then Test the connection using test connection button.
- Then open the file with notepad. It will show you the exact connection string.
进一步参考检查:MSDN
正如保罗在问题下的评论中提到的,您的连接字符串指向本地数据库资源(大概在您的开发机器上)。即使您将本地数据库服务器配置为支持远程连接,地址 OfficePc\MSSQLSERVER2014
也不可寻址,因为它不等同于机器地址(IP 地址)。
您的应用需要通过可访问的 IP 地址连接到您的数据库(这可能需要您在本地网络上进行一些端口转发,或在防火墙上打开端口)。
或者,您可以将数据库迁移到 Azure(使用 VM 中的 SQL 服务器或使用 SQL 数据库服务)。
请记住:如果您从 Azure 访问本地(本地)数据库服务器,将会增加延迟,以及一些出站带宽成本。
我构建了一个 .asmx 网络服务,它从本地 sql 服务器 2014 数据库检索信息。 在本地主机上一切正常,但在将 Web 服务发布到 Azure 后出现错误:
An unhandled exception of type 'System.Web.Services.Protocols.SoapException' occurred in System.Web.Services.dll
Additional information: Server was unable to process request. ---> A network-related or instance-specific error occurred while establishing a connection to SQL Server. The server was not found or was not accessible. Verify that the instance name is correct and that SQL Server is configured to allow remote connections. (provider: SQL Network Interfaces, error: 26 - Error Locating Server/Instance Specified)
SQL 服务器配置为允许远程连接。
我的连接字符串如下:
string con2 = @"Data Source=OfficePc\MSSQLSERVER2014;Initial Catalog=Database;Persist Security Info=True;User ID=Admin;Password=123456";
该错误是连接字符串中缺少某些内容的结果,还是我缺少某些配置更改?
看起来 SQL 服务器实例未 运行 或不可访问。尝试使用 SSMS 连接到同一个数据库,如果出现相同的错误,则实例不是 运行.
大多数错误发生在找不到数据库服务器时。重新检查是否正确提及了服务器名称(数据源)。如果您手动生成连接字符串,请使用 .uld 文件生成连接字符串。
使用.udl 文件自动生成连接字符串:
- Create a sampe.txt file.
- Rename it as sample.udl file.
- Then double click on it, It will show you window entitled 'Data Link Properties'.
- Configure the connection there.
- Then Test the connection using test connection button.
- Then open the file with notepad. It will show you the exact connection string.
进一步参考检查:MSDN
正如保罗在问题下的评论中提到的,您的连接字符串指向本地数据库资源(大概在您的开发机器上)。即使您将本地数据库服务器配置为支持远程连接,地址 OfficePc\MSSQLSERVER2014
也不可寻址,因为它不等同于机器地址(IP 地址)。
您的应用需要通过可访问的 IP 地址连接到您的数据库(这可能需要您在本地网络上进行一些端口转发,或在防火墙上打开端口)。
或者,您可以将数据库迁移到 Azure(使用 VM 中的 SQL 服务器或使用 SQL 数据库服务)。
请记住:如果您从 Azure 访问本地(本地)数据库服务器,将会增加延迟,以及一些出站带宽成本。