类库中的SQL连接在.NET 6 web应用程序中正常工作,在源ASP.NET网站中失败



我们有一个较旧且复杂的ASP.NET 4.8网站("网站"方法,而不是"Web应用程序"(。我正在创建一个新的.NET 6 web应用程序,它将执行一些类似的功能。我使用.NET Framework 4.8将旧站点中的代码改编为一个新的类库,这样我们就可以避免维护重复的代码。该库包含使用SqlConnection(而非EF(调用SQL Server的代码。

该库与新的.NET6应用程序(包括SQLServer调用(配合良好。但是,当我将旧的ASP.NET站点指向库时,SQL Server调用失败,并返回错误:

Microsoft.Data.SqlClient.SqlException(0x80131904(:建立与SQL Server的连接时发生与网络相关或实例特定的错误。找不到或无法访问服务器。请验证实例名称是否正确,以及SQL Server是否已配置为允许远程连接。

它在简单地打开连接时失败,如下所示:

var sqlConn = new SqlConnection(connectionString);
await sqlConn.OpenAsync();

这是在使用与.NET 6应用程序完全相同的库时发生的,该库在同一台计算机上运行(SQL Server是外部计算机(。我多次验证连接字符串完全相同。我还在另一台机器上进行了测试。

作为一个测试,我创建了一个非常简单的新类库,名为SQL Server(带有硬编码的连接字符串(,并创建一个新的ASP.NET 4.8网站来调用该库。这很管用。我在旧的ASP.NET网站中添加了一个新的测试页面,调用该测试库。由于找不到服务器错误而失败。

总之,问题看起来像:

  • .NET 6 web应用程序>NET 4.8类库SQL客户端=正常
  • 测试ASP.NET 4.8网站>NET 4.8类库SQL客户端=正常
  • 完整的ASP.NET 4.8网站>NET 4.8类库SQL客户端=失败

所以问题不在于使用类库调用SQL Server的基础。这肯定是旧网站里的其他东西,但我花了几天时间试图找出原因后,被难住了。关于还应该看什么的建议值得赞赏。

为了回到这一点,我创建了一个新的空ASP.NET网站,并开始从旧网站添加内容。我估计在某个时刻,我会遇到SQL连接错误。我一点一点地逐渐添加内容,并在过程中进行测试。但我添加了所有内容,没有出现错误!我仍然对是什么原因导致旧网站出现故障感到困惑,但至少它现在起作用了。

最新更新