天蓝色函数时间触发器和天蓝色sql数据库与c#之间的连接:错误。如何修复它

Posted

技术标签:

【中文标题】天蓝色函数时间触发器和天蓝色sql数据库与c#之间的连接:错误。如何修复它【英文标题】:connection between azure functions time trigger and azure sql database with c# : error .how to fix it 【发布时间】:2021-08-15 14:17:20 【问题描述】:

我将尝试使用 C# 将 azure 函数与 azure 数据库 sql 连接,但我不知道如何修复此错误。你有什么想法吗??

错误: 我确实尝试并捕获以查看异常

System.Data.ProviderBase.DbConnectionPool.CheckPoolBlockingPeriod(Exceptione)
       at System.Data.ProviderBase.DbConnectionPool.CreateObject(DbConnection owningObject, DbConnectionOptions userOptions, DbConnectionInternal oldConnection)
       at System.Data.ProviderBase.DbConnectionPool.UserCreateRequest(DbConnection owningObject, DbConnectionOptions userOptions, DbConnectionInternal oldConnection)
       at System.Data.ProviderBase.DbConnectionPool.TryGetConnection(DbConnection owningObject, UInt32 waitForMultipleObjectsTimeout, Boolean allowCreate, Boolean onlyOneCheckConnection, DbConnectionOptions userOptions, DbConnectionInternal& connection)
       at System.Data.ProviderBase.DbConnectionPool.TryGetConnection(DbConnection owningObject, TaskCompletionSource`1 retry, DbConnectionOptions userOptions, DbConnectionInternal& connection)
       at System.Data.ProviderBase.DbConnectionFactory.TryGetConnection(DbConnection owningConnection, TaskCompletionSource`1 retry, DbConnectionOptions userOptions, DbConnectionInternal oldConnection, DbConnectionInternal& connection)
       at System.Data.ProviderBase.DbConnectionInternal.TryOpenConnectionInternal(DbConnection outerConnection, DbConnectionFactory connectionFactory, TaskCompletionSource`1 retry, DbConnectionOptions userOptions)
       at System.Data.ProviderBase.DbConnectionClosed.TryOpenConnection(DbConnection outerConnection, DbConnectionFactory connectionFactory, TaskCompletionSource`1 retry, DbConnectionOptions userOptions)
       at System.Data.SqlClient.SqlConnection.TryOpen(TaskCompletionSource`1 retry)
       at System.Data.SqlClient.SqlConnection.Open()

这是一个代码:

using System;
using Microsoft.Azure.WebJobs;
using Microsoft.Azure.WebJobs.Host;
using Microsoft.Extensions.Logging;
using System.Data.SqlClient;
using System.Threading.Tasks;
using Microsoft.Azure.Functions.Extensions;


namespace azuretosharepoint

    public static class Function1
    
        [FunctionName("Function1")]
        public static async Task RunAsync([TimerTrigger("0 */1 * * * *")]TimerInfo myTimer, ILogger log)
        
            try
            
                // Get the connection string from app settings and use it to create a connection.
                var str = Environment.GetEnvironmentVariable("sqldb-connection");
                using (SqlConnection conn = new SqlConnection(str))
                
                    conn.Open();
                    var text = "SELECT * FROM PERSONNE ;";
                    using (SqlCommand cmd = new SqlCommand(text, conn))
                    
                    // Execute the command and log the # rows affected.
                    var rows = await cmd.ExecuteNonQueryAsync();
                    log.LogInformation($"rows rows were updated");
                    
                
            
            catch(Exception e)
            
                Console.WriteLine("0 Exception caught.", e);
            

        
    

error image

【问题讨论】:

错误很明显。凭据错误。完整的异常很可能包含更多信息。无论如何,一个名为sqladmin 的帐户听起来不像是任何服务都应该使用的东西 请发布完整异常文本,而不仅仅是消息。完整的异常文本包含任何内部异常和导致此错误的调​​用的堆栈跟踪。发布连接字符串(不包含敏感信息)也会有所帮助 非,凭据是正确的,因为我能够连接到 azure data studio,但我会向您展示异常:生成的异常:System.Private.CoreLib 中的“System.Data.SqlClient.SqlException” .dll @PanagiotisKanavos 我已经修改了帖子并放了完整的eception 帖子包含 Stacktrace,但不包含异常详细信息。 【参考方案1】:

如果您对这项服务非常陌生,可以关注此tutorial。

检查您的代码后,没有任何问题。问题一定是连接。请检查您是否修改了连接字符串中的密码

另一件事是确保为您的 IP 地址设置服务器防火墙规则。

【讨论】:

以上是关于天蓝色函数时间触发器和天蓝色sql数据库与c#之间的连接:错误。如何修复它的主要内容,如果未能解决你的问题,请参考以下文章

天蓝色函数http触发器输入cosmos db文档

如何限制天蓝色函数的规模

天蓝色队列中的消息消失

如何在 c# 中基于构造函数方法创建数组?

与 T-sql 的 LIKE 命令等效的天蓝色表存储查询是啥?

SQL CE 天蓝色连接