SQL Azure连接关闭大json字符串
本文关键字:json 字符串 Azure 连接 SQL | 更新日期: 2023-09-27 18:03:18
我试图将较大的json字符串(c.2Mb)保存到SQL Azure数据库中的NVARCHAR(MAX)列,但得到以下例外:
[SqlException (0x80131904): A transport-level error has occurred when sending the request to the server. (provider: TCP Provider, error: 0 - The specified network name is no longer available.)]
如果我将json字符串设置为",则INSERT语句可以正常工作。我已经成功地保存了其他,较小的json字符串与相同的方法。异常被立即抛出,所以感觉不像超时。尽管如此,我已经尝试更改连接和命令超时,但无济于事。
我正在使用Dapper与SQL对话:
public async Task<PublisherDto> SaveNewAsync(PublisherDto publisher, int userID)
{
using (var cnn = new SqlConnection(ConfigurationManager.ConnectionStrings["DefaultConnection"].ToString()))
{
var b = await cnn.QueryAsync<PublisherDto>("s_PublisherInsert", new
{
publisher.cv_id,
publisher.Name,
publisher.ThumbImageUrl,
publisher.FullImageUrl,
userID,
publisher.cv_Url,
publisher.JsonData,
publisher.cv_version_hash
}, commandType: CommandType.StoredProcedure, commandTimeout: 60);
return b.FirstOrDefault();
}
}
有没有人遇到过同样的问题,并有任何想法如何解决它?
尝试将超时时间设置为更高的值。根据文档,错误与超时有关。
https://support.microsoft.com/en-us/kb/555938希望有帮助。
rn
我遇到了这个问题,并且无法准确诊断出问题的根源是什么,但是我引入了一个连接弹性类,以便在出现故障时自动重试。同样,虽然这不能解决或识别潜在的根本问题,但它确实使应用程序对问题具有健壮性。
我使用实体框架连接到Azure SQL,并使用DbExecutionStrategy实现弹性连接的基本操作方法在这里。
看起来您可能正在使用ADO进行连接。这是一篇关于实现ADO的有用文章。. NET连接弹性。
您设置了命令超时时间,但没有提及连接到db的超时时间。我建议在连接字符串中延长连接超时。