数据库
首页 > 数据库> > 如何在执行C#Azure函数期间避免SqlClient超时错误?

如何在执行C#Azure函数期间避免SqlClient超时错误?

作者:互联网

我已经使用C#创建了一个功能应用程序时间触发器.
在逻辑内部,我调用并执行在SQL Server中创建的存储过程.

存储的proc的执行耗时超过8分钟,并且在Azure函数应用日志中出现以下错误:

2018-04-02T11:03:46.409 [Error] Exception while executing function:
Functions.AbarIomWeeklyUsage. mscorlib: Exception has been thrown by
the target of an invocation. .Net SqlClient Data Provider: Execution
Timeout Expired. The timeout period elapsed prior to completion of
the operation or the server is not responding. The wait operation
timed out. 2018-04-02T11:03:46.425 [Error] Function completed
(Failure, Id=1b85e7ef-ea52-4fd3-ab79-f27d188c5cac, Duration=30323ms)

到目前为止,我尝试了2件事:
1.利用应用程序连接字符串中的连接超时
2.在host.json中添加超时

但这仍然给我同样的错误30秒超时.

任何人都经历过相同的事情或对此有解决方案?

解决方法:

您肯定超出了默认命令超时(默认为30秒).如果未设置SqlCommand.CommandTimeout,则将获得SqlException.将代码中的命令的CommandTimeout设置为10分钟(600秒)(此功能没有配置),与函数超时相同.

标签:azure,azure-functions,c,stored-procedures,azure-sql-server
来源: https://codeday.me/bug/20191025/1927255.html