gpt4 book ai didi

c# - SqlConnection.CacheConnectionStringProperties().NET 代码中的 NullReferenceException

转载 作者:可可西里 更新时间:2023-11-01 07:59:00 26 4
gpt4 key购买 nike

我面临着非常奇怪的问题。给定以下代码:

static void Main()
{
var c = new System.Data.SqlClient.SqlConnection();

c.ConnectionString = "Data Source=SOME_NAME;Initial Catalog=SOME_DB;Integrated Security=True";
c.ConnectionString = ""; //null also triggers exception

Console.WriteLine("Success");
}

它在很长一段时间内运行良好,但在具有 .NET 版本 4.7.03056 版本 461808(似乎是 4.7.2)的最新版本的 Windows 10 (1803) 上它崩溃并出现以下异常:

Unhandled Exception: System.NullReferenceException: Object reference not set to an instance of an object.
at System.Data.SqlClient.SqlConnection.CacheConnectionStringProperties()
at System.Data.SqlClient.SqlConnection.set_ConnectionString(String value)
at TestCacheConnectionStringProperties.Program.Main()

这在第二次分配时崩溃,如果我删除 ConnectionString 的任何分配,它工作正常。

我看过the sources并且没有找到可能发生 NullReferenceException 的地方(但是来源似乎是针对 .NET Framework 4.7.1 的,所以 smth 可能会改变)。

现在的问题是 - 是什么导致了这个问题?这是 .NET 错误吗?如果是 - 如何解决?

更新:根据评论 - 非常感谢大家 - 问题是由这些行(反编译)引起的:

private void CacheConnectionStringProperties()
{
SqlConnectionString connectionOptions = this.ConnectionOptions as SqlConnectionString;
if (connectionOptions != null)
this._connectRetryCount = connectionOptions.ConnectRetryCount;

//Seems like this is causing the bug because it is not inside of null-check-if for connectionOptions variable
if (this._connectRetryCount != 1 || !ADP.IsAzureSqlServerEndpoint(connectionOptions.DataSource))
return;
this._connectRetryCount = 2;
}

它在某种程度上与 Azure 相关,并且与源中可用的内容完全不同。

我已经发布了问题 here并将等待响应。

最佳答案

这是 .NET Framework 4.7.2 中 System.Data 中记录的已知问题 https://github.com/Microsoft/dotnet/blob/master/releases/net472/dotnet472-known-issues.md

目前正在解决该问题,并将在 .NET Framework 4.7.2 的 future 更新中提供

关于c# - SqlConnection.CacheConnectionStringProperties().NET 代码中的 NullReferenceException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50177658/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com