我正在尝试移植一个充当SQL Server数据库前端的web api。 web api在Windows下运行正常,在部署到IIS时,可以在Windows上运行.Net Core,但在OSX或Linux中运行时会出现连接错误。
在Windows中的Visual Studio中使用的连接字符串是
connectionString="data source=A\B;initial catalog=C;
persist security info=True;user id=X; password=Y;
MultipleActiveResultSets=True;App=EntityFramework"
providerName="System.Data.SqlClient"
然后将其转换为.Net核心变体的连接字符串:
Server=A\B;Database=C;user id=X;password=Y;
该项目编译得很好,甚至可以在Windows下的.Net核心下运行,但是从* nix机器运行时会崩溃。
错误是:
Unhandled Exception: System.Data.SqlClient.SqlException:
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: TCP
Provider, error: 35 - An internal exception was caught) --->
System.AggregateException: One or more errors occurred. (No such device
or address) --->
System.Net.Internals.SocketExceptionFactory+ExtendedSocketException: No
such device or address
我可以ping通地址,但我想有效地址(A)和服务器实例(B)的组合不适用于* nix下的简单斜杠。
答案 0 :(得分:1)
服务器= A \ B;数据库= C;用户ID = X;密码= Y;
说您正在访问Netbios名称为A的Windows计算机上的B实例。可能它工作的Windows机器本身就是“A”。
对于远程连接,虽然有些事情你应该做的:
您可以开始尝试(其中1.2.3.4是Windows机器的IP):
1.2.3.4\B;Database=C;uid=X;pwd=Y
要在主机PC上详细安装和设置SQL Express,启用远程访问,然后从远程计算机访问,您可以观看我的短视频系列。这些视频是关于我的应用程序的安装,但大部分都包含安装MS SQL服务器和从远程位置访问。这是一个4部分系列,这是第一部分的链接: