我在一台服务器2008机器上有许多.NET web应用程序,我正试图迁移到Server2019机器上,其中一些应用程序移动后会给我在另一个服务器上连接Server 2016实例带来问题。
我得到的错误是
System.Data.SqlClient.SqlException (0x80131904):在建立到Server的连接时发生了与网络相关的或特定于实例的错误。找不到或无法访问服务器。验证实例名是否正确,以及Server是否配置为允许远程连接。(提供程序: SQL网络接口,错误: 25 -连接字符串无效)--> System.ComponentModel.Win32Exception (87):参数不正确
这是一个.NET核心2.2Web应用程序。(安装在服务器上的.net核心2.2服务器包)连接字符串类似于.net,并使用进行连接。
IIS中的应用程序有一个为该应用程序创建的应用程序池,设置与在旧服务器上运行的应用程序相同:无托管代码,身份设置为域用户“域\ user”。
从新的应用服务器到数据库服务器的Ping工作。作为新服务器上的域用户运行SSMS,可以很好地连接到数据库,并可以通过management查看数据。
所以,我不知道Server2019中是否有什么不同之处在于它试图连接到Server的方式还是什么?我这几天都在胡思乱想。.NET 4.0应用程序在试图连接到同一实例上的其他数据库时也有相同的错误。
奇怪的是,其他一些应用程序运行良好,连接到不同服务器上的不同SQL 2016实例,但它们也是不同的.net版本,就像较早的.NET 4.0 web应用程序,但它们作为应用程序池运行,每个应用程序都有不同的域帐户。
似乎这个服务器上的所有.NET核心或.net 4.0 web应用程序都很难从这个服务器连接到这个数据库实例,但是回到旧的web应用服务器上,它们工作得很好。
还有什么我可以查的吗?
编辑:我发现这个错误实际上是当连接到一个新的Server时,即使是从旧的应用服务器,它仍然会得到相同的错误。我在这个应用程序中有两个连接,所以我认为它是第一个,但实际上它是第二个。因此,这与新的SQL server实例有更多的关系。同样,来自SSMS的连接在这个用户中运行得很好,而不是来自web应用程序。
Edit2:经过更多的测试后,如果混合服务器中有Server2019,这肯定是要做的事情。从2019年应用服务器到2019年db服务器失败。从2008年的应用服务器到2019年的db服务器都失败了。从2019年的应用服务器到2016年的db服务器都失败了。从2008年的应用服务器到2016年的db服务器都成功了。
编辑3:我觉得我快疯了。其中一个应用程序,我试图将ASPNETCORE_ENVIRONMENT更改为Development,以便在屏幕上看到更详细的错误,因此我将appsettings.Development.json设置为与appsettings.Production.json完全相同,然后连接工作!将其切换回生产,它将再次获得错误。整个文件是完全相同的文本。那又有什么意义?我甚至尝试显式地将环境变量设置为Production,而不是让它将其作为默认设置。
编辑4:我已经解决了我现在遇到的一半问题。不管出于什么原因,我从一张电子表格中复制的连接字符串中包含了疯狂的隐藏字符,这就是为什么它说sql服务器不存在。我在任何编辑器中都看不到它们,只有通过VS代码比较才能找到,它说行不同,但没有看到任何区别,我把它分成了块,找到了点。当我们在WordPad中打开它时,我们发现它是唯一显示它的地方,见下面。

发布于 2020-01-30 15:28:34
问题是由于连接字符串中隐藏的字符造成的。看我的编辑4,剩下的其他问题都是无关的。
发布于 2020-01-21 21:01:07
发布于 2020-01-28 20:23:41
尝试使用用于在IIS中配置应用程序的相同AppPool名称在数据库中创建用户。
这里有一个“如何”在数据库中创建用户:https://engram404.net/grant-sql-permissions-to-iis-apppool-user/
对我起作用了。
否则,这里有一个“为什么”会发生:您在connectionString中告诉它将使用可信连接"Trusted_Connection=True;"
如果您不想像前面所描述的那样创建用户,您应该删除Trusted_Connection=True;并使用如下的连接字符串:
Server=mysqlserver\myinstance,3050;Database=Idea;User Id=SetYourUser;Password=SetYourPassword“
https://stackoverflow.com/questions/59848895
复制相似问题