Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/55.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 用户登录失败'&书信电报;令牌识别主体>';。使用托管标识使用Azure Function app和Azure SQL服务时,令牌已过期_C#_Azure Function App_Azure Sql Server_Azure Managed Identity - Fatal编程技术网

C# 用户登录失败'&书信电报;令牌识别主体>';。使用托管标识使用Azure Function app和Azure SQL服务时,令牌已过期

C# 用户登录失败'&书信电报;令牌识别主体>';。使用托管标识使用Azure Function app和Azure SQL服务时,令牌已过期,c#,azure-function-app,azure-sql-server,azure-managed-identity,C#,Azure Function App,Azure Sql Server,Azure Managed Identity,我正在使用服务总线触发的功能应用程序。它使用托管标识连接到Azure SQL Server 连接是使用以下代码创建的 new SqlConnection(this.ConnectionString) { // AzureServiceTokenProvider handles caching the token and refreshing it before it expires AccessToken = new AzureSe

我正在使用服务总线触发的功能应用程序。它使用
托管标识连接到
Azure SQL Server

连接是使用以下代码创建的

new SqlConnection(this.ConnectionString)
        {
            // AzureServiceTokenProvider handles caching the token and refreshing it before it expires
            AccessToken = new AzureServiceTokenProvider().GetAccessTokenAsync("https://database.windows.net/").Result
        };
我每天收到几千个事件,所有这些都无法连接到数据库

日志中的堆栈跟踪是

[{"parsedStack":[{"assembly":"System.Data.SqlClient, Version=4.5.0.1, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a","method":"System.Data.SqlClient.SqlInternalConnectionTds..ctor","level":0,"line":0},
{"assembly":"System.Data.SqlClient, Version=4.5.0.1, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a","method":"System.Data.SqlClient.SqlConnectionFactory.CreateConnection","level":1,"line":0},
{"assembly":"System.Data.SqlClient, Version=4.5.0.1, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a","method":"System.Data.ProviderBase.DbConnectionFactory.CreatePooledConnection","level":2,"line":0},
{"assembly":"System.Data.SqlClient, Version=4.5.0.1, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a","method":"System.Data.ProviderBase.DbConnectionPool.CreateObject","level":3,"line":0},
{"assembly":"System.Data.SqlClient, Version=4.5.0.1, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a","method":"System.Data.ProviderBase.DbConnectionPool.UserCreateRequest","level":4,"line":0},
{"assembly":"System.Data.SqlClient, Version=4.5.0.1, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a","method":"System.Data.ProviderBase.DbConnectionPool.TryGetConnection","level":5,"line":0},
{"assembly":"System.Data.SqlClient, Version=4.5.0.1, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a","method":"System.Data.ProviderBase.DbConnectionPool.TryGetConnection","level":6,"line":0},
{"assembly":"System.Data.SqlClient, Version=4.5.0.1, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a","method":"System.Data.ProviderBase.DbConnectionFactory.TryGetConnection","level":7,"line":0},
{"assembly":"System.Data.SqlClient, Version=4.5.0.1, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a","method":"System.Data.ProviderBase.DbConnectionInternal.TryOpenConnectionInternal","level":8,"line":0},
{"assembly":"System.Data.SqlClient, Version=4.5.0.1, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a","method":"System.Data.ProviderBase.DbConnectionClosed.TryOpenConnection","level":9,"line":0},
{"assembly":"System.Data.SqlClient, Version=4.5.0.1, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a","method":"System.Data.SqlClient.SqlConnection.TryOpen","level":10,"line":0},
{"assembly":"System.Data.SqlClient, Version=4.5.0.1, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a","method":"System.Data.SqlClient.SqlConnection.Open","level":11,"line":0},
{"assembly":"Microsoft.EntityFrameworkCore.Relational, Version=2.2.6.0, Culture=neutral, PublicKeyToken=adb9793829ddae60","method":"Microsoft.EntityFrameworkCore.Storage.RelationalConnection.OpenDbConnection","level":12,"line":0},
{"assembly":"Microsoft.EntityFrameworkCore.Relational, Version=2.2.6.0, Culture=neutral, PublicKeyToken=adb9793829ddae60","method":"Microsoft.EntityFrameworkCore.Storage.RelationalConnection.Open","level":13,"line":0},
{"assembly":"Microsoft.EntityFrameworkCore.Relational, Version=2.2.6.0, Culture=neutral, PublicKeyToken=adb9793829ddae60","method":"Microsoft.EntityFrameworkCore.Query.Internal.QueryingEnumerable`1+Enumerator.BufferlessMoveNext","level":14,"line":0},
{"assembly":"Microsoft.EntityFrameworkCore.SqlServer, Version=2.2.6.0, Culture=neutral, PublicKeyToken=adb9793829ddae60","method":"Microsoft.EntityFrameworkCore.SqlServer.Storage.Internal.SqlServerExecutionStrategy.Execute","level":15,"line":0},
{"assembly":"Microsoft.EntityFrameworkCore.Relational, Version=2.2.6.0, Culture=neutral, PublicKeyToken=adb9793829ddae60","method":"Microsoft.EntityFrameworkCore.Query.Internal.QueryingEnumerable`1+Enumerator.MoveNext","level":16,"line":0},
{"assembly":"Microsoft.EntityFrameworkCore, Version=2.2.6.0, Culture=neutral, PublicKeyToken=adb9793829ddae60","method":"Microsoft.EntityFrameworkCore.Query.Internal.LinqOperatorProvider+<_TrackEntities>d__17`2.MoveNext","level":17,"line":0},
{"assembly":"Microsoft.EntityFrameworkCore, Version=2.2.6.0, Culture=neutral, PublicKeyToken=adb9793829ddae60","method":"Microsoft.EntityFrameworkCore.Query.Internal.LinqOperatorProvider+ExceptionInterceptor`1+EnumeratorExceptionInterceptor.MoveNext","level":18,"line":0},
{"assembly":"System.Linq, Version=4.2.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a","method":"System.Linq.Enumerable+SelectEnumerableIterator`2.MoveNext","level":19,"line":0},
{"assembly":"System.Linq, Version=4.2.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a","method":"System.Linq.Enumerable.TryGetFirst","level":20,"line":0},
{"assembly":"MaskedProjectPNameIngestor, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null","method":"MaskedProjectPNameIngestor.SRFunction.RetrieveCodeAsync","level":21,"line":182,"fileName":"D:\\a\\1\\s\\MaskedProject\\PNameIngestion\\MaskedProjectPNameIngestor\\SRFunction.cs"},
{"assembly":"MaskedProjectPNameIngestor, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null","method":"MaskedProjectPNameIngestor.SRFunction+<Run>d__5.MoveNext","level":22,"line":121,"fileName":"D:\\a\\1\\s\\MaskedProject\\PNameIngestion\\MaskedProjectPNameIngestor\\SRFunction.cs"}],
"outerId":"0","message":"Login failed for user '<token-identified principal>'. Token is expired.","type":"System.Data.SqlClient.SqlException","id":"64152618"}]

[{“parsedStack”:[{“assembly”:“System.Data.SqlClient,Version=4.5.0.1,Culture=neutral,PublicKeyToken=b03f5f7f11d50a3a”,“方法”:“System.Data.SqlClient.SqlInternalConnectionDS..ctor”,“级别”:0,“行”:0},
{“assembly”:“System.Data.SqlClient,Version=4.5.0.1,Culture=neutral,PublicKeyToken=b03f5f7f11d50a3a”,“method”:“System.Data.SqlClient.SqlConnectionFactory.CreateConnection”,“level”:1,“line”:0},
{“assembly”:“System.Data.SqlClient,Version=4.5.0.1,Culture=neutral,PublicKeyToken=b03f5f7f11d50a3a”,“method”:“System.Data.ProviderBase.DbConnectionFactory.CreatePooledConnection”,“level”:2,“line”:0},
{“assembly”:“System.Data.SqlClient,Version=4.5.0.1,Culture=neutral,PublicKeyToken=b03f5f7f11d50a3a”,“method”:“System.Data.ProviderBase.DbConnectionPool.CreateObject”,“level”:3,“line”:0},
{“assembly”:“System.Data.SqlClient,Version=4.5.0.1,Culture=neutral,PublicKeyToken=b03f5f7f11d50a3a”,“method”:“System.Data.ProviderBase.DbConnectionPool.UserCreateRequest”,“level”:4,“line”:0},
{“assembly”:“System.Data.SqlClient,Version=4.5.0.1,Culture=neutral,PublicKeyToken=b03f5f7f11d50a3a”,“method”:“System.Data.ProviderBase.DbConnectionPool.TryGetConnection”,“level”:5,“line”:0},
{“assembly”:“System.Data.SqlClient,Version=4.5.0.1,Culture=neutral,PublicKeyToken=b03f5f7f11d50a3a”,“method”:“System.Data.ProviderBase.DbConnectionPool.TryGetConnection”,“level”:6,“line”:0},
{“assembly”:“System.Data.SqlClient,Version=4.5.0.1,Culture=neutral,PublicKeyToken=b03f5f7f11d50a3a”,“method”:“System.Data.ProviderBase.DbConnectionFactory.TryGetConnection”,“level”:7,“line”:0},
{“assembly”:“System.Data.SqlClient,Version=4.5.0.1,Culture=neutral,PublicKeyToken=b03f5f7f11d50a3a”,“method”:“System.Data.ProviderBase.DbConnectionInternal.TryOpenConnectionInternal”,“level”:8,“line”:0},
{“assembly”:“System.Data.SqlClient,Version=4.5.0.1,Culture=neutral,PublicKeyToken=b03f5f7f11d50a3a”,“method”:“System.Data.ProviderBase.DbConnectionClosed.TryOpenConnection”,“level”:9,“line”:0},
{“assembly”:“System.Data.SqlClient,Version=4.5.0.1,Culture=neutral,PublicKeyToken=b03f5f7f11d50a3a”,“method”:“System.Data.SqlClient.SqlConnection.TryOpen”,“level”:10,“line”:0},
{“assembly”:“System.Data.SqlClient,Version=4.5.0.1,Culture=neutral,PublicKeyToken=b03f5f7f11d50a3a”,“method”:“System.Data.SqlClient.SqlConnection.Open”,“level”:11,“line”:0},
{“assembly”:“Microsoft.EntityFrameworkCore.Relational,Version=2.2.6.0,Culture=neutral,PublicKeyToken=adb9793829ddae60”,“method”:“Microsoft.EntityFrameworkCore.Storage.RelationalConnection.OpenDbConnection”,“level”:12,“line”:0},
{“汇编”:“Microsoft.EntityFrameworkCore.Relational,版本=2.2.6.0,区域性=中性,PublicKeyToken=adb9793829ddae60”,“方法”:“Microsoft.EntityFrameworkCore.Storage.RelationalConnection.Open”,“级别”:13,“行”:0},
{“assembly”:“Microsoft.EntityFrameworkCore.Relational,Version=2.2.6.0,Culture=neutral,PublicKeyToken=adb9793829ddae60”,“method”:“Microsoft.EntityFrameworkCore.Query.Internal.QueryingEnumerable`1+枚举数.bufferlessMovenText”,“level”:14,“line”:0},
{“汇编”:“Microsoft.EntityFrameworkCore.SqlServer,版本=2.2.6.0,区域性=中性,PublicKeyToken=adb9793829ddae60”,“方法”:“Microsoft.EntityFrameworkCore.SqlServer.Storage.Internal.SqlServerExecutionStrategy.Execute”,“级别”:15,“行”:0},
{“assembly”:“Microsoft.EntityFrameworkCore.Relational,Version=2.2.6.0,Culture=neutral,PublicKeyToken=adb9793829ddae60”,“method”:“Microsoft.EntityFrameworkCore.Query.Internal.QueryingEnumerable`1+枚举数.MoveNext”,“level”:16,“line”:0},
{“assembly”:“Microsoft.EntityFrameworkCore,Version=2.2.6.0,Culture=neutral,PublicKeyToken=adb9793829ddae60”,“method”:“Microsoft.EntityFrameworkCore.Query.Internal.LinqOperatorProvider+d_u17`2.MoveNext”,“level”:17,“line”:0},
{“汇编”:“Microsoft.EntityFrameworkCore,Version=2.2.6.0,Culture=neutral,PublicKeyToken=adb9793829ddae60”,“方法”:“Microsoft.EntityFrameworkCore.Query.Internal.LinqOperatorProvider+ExceptionInterceptor`1+EnumeratorExceptionInterceptor.MoveNext”,“级别”:18,“行”:0},
{“assembly”:“System.Linq,Version=4.2.1.0,Culture=neutral,PublicKeyToken=b03f5f7f11d50a3a”,“method”:“System.Linq.Enumerable+SelectEnumerableIterator`2.MoveNext”,“level”:19,“line”:0},
{“assembly”:“System.Linq,Version=4.2.1.0,Culture=neutral,PublicKeyToken=b03f5f7f11d50a3a”,“method”:“System.Linq.Enumerable.TryGetFirst”,“level”:20,“line”:0},
{“assembly”:“MaskedProjectPNameIngestor,Version=1.0.0,Culture=neutral,PublicKeyToken=null”,“method”:“MaskedProjectPNameIngestor.SRFunction.RetrieveCodeAsync”,“level”:21,“line”:182,“fileName”:“D:\\a\\1\\s\\MaskedProject\\PNameIngestion\\MaskedProjectPNameIngestor\\SRFunction.cs”,
{“assembly”:“maskedprojectpnameentor,Version=1.0.0,Culture=neutral,PublicKeyToken=null”,“method”:“maskedprojectpnameentor.SRFunction+d_u5.MoveNext”,“level”:22,“line”:121,“fileName”:“d:\\a\\1\\s\\MaskedProject\\pnameention\\maskedprojectpnameentor\\SRFunction.cs”,
“outerId”:“0”,“消息”:“用户登录失败”。令牌已过期。”,“类型”:“System.Data.SqlClient.SqlException”,“id”:“64152618”}]
谢谢你的帮助
提前感谢

您需要
创建用户

您还需要在门户中的
上打开
Identity
status

我的结果

使用系统;
使用System.IO;
使用System.Threading.Tasks;
使用Microsoft.AspNetCore.Mvc;
使用Microsoft.Azure.WebJobs;
使用Microsoft.Azure.WebJobs.Extensions.Http;
使用Microsoft.AspNetCore
using System;
using System.IO;
using System.Threading.Tasks;
using Microsoft.AspNetCore.Mvc;
using Microsoft.Azure.WebJobs;
using Microsoft.Azure.WebJobs.Extensions.Http;
using Microsoft.AspNetCore.Http;
using Microsoft.Extensions.Logging;
using Newtonsoft.Json;
using System.Data.SqlClient;
using Microsoft.Azure.Services.AppAuthentication;
using System.Diagnostics;

namespace func_sqlcon
{
    public static class Function1
    {
        [FunctionName("Function1")]
        public static async Task<IActionResult> Run(
            [HttpTrigger(AuthorizationLevel.Function, "get", "post", Route = null)] HttpRequest req,
        ILogger log)
        {
            var str = "Server=tcp:*********.database.windows.net,1433;Initial Catalog=********;Persist Security Info=False;MultipleActiveResultSets=False;Encrypt=True;TrustServerCertificate=False;Connection Timeout=30;";
            //Environment.GetEnvironmentVariable("sqldb_connection");
            string AccessToken;
            SqlConnection connection = new SqlConnection(str);
            try
            {
                AccessToken = await (new AzureServiceTokenProvider()).GetAccessTokenAsync("https://database.windows.net/", "e4c9ab4e-bd27-40d5-8459-230ba2a757fb");
                connection.AccessToken = AccessToken;
            }
            catch (Exception ex)
            {
                Trace.WriteLine(ex.ToString());
                throw;
            }
            connection.Open();
            return new OkObjectResult(AccessToken);
        }
    }
}