c# - 依赖注入(inject)在 Azure 功能中失败,一旦部署,但在本地工作

标签 c# dependency-injection azure-function-app

我有一个类,它有一个公共(public)构造函数,它采用 SqlConnection作为参数。

private readonly SqlConnection _sqlConnection;

public Sample(SqlConnection sqlConnection)
{
    _sqlConnection = sqlConnection;
}

在启动文件中我正在尝试做 DI
var sqlConnection = new SqlConnection(Environment.GetEnvironmentVariable("AzureSQLConnection"));

builder.Services.AddSingleton<SqlConnection>(sqlConnection);

它在本地运行,但在部署到 Azure 时失败并出现错误

System.InvalidOperationException : Unable to resolve service for type 'System.Data.SqlClient.SqlConnection' while attempting to activate 'Test.Sample.Sample'. at Microsoft.Extensions.DependencyInjection.ActivatorUtilities.GetService(IServiceProvider sp,Type type,Type requiredBy,Boolean isDefaultParameterRequired) at lambda_method(Closure ,IServiceProvider ,Object[] ) at Microsoft.Azure.WebJobs.Host.Executors.DefaultJobActivator.CreateInstance[T](IServiceProvider serviceProvider) at C:\projects\azure-webjobs-sdk-rqm4t\src\Microsoft.Azure.WebJobs.Host\Executors\DefaultJobActivator.cs : 37 at Microsoft.Azure.WebJobs.Host.Executors.DefaultJobActivator.CreateInstance[T](IFunctionInstanceEx functionInstance) at C:\projects\azure-webjobs-sdk-rqm4t\src\Microsoft.Azure.WebJobs.Host\Executors\DefaultJobActivator.cs : 32 at Microsoft.Azure.WebJobs.Host.Executors.ActivatorInstanceFactory1.<>c__DisplayClass1_1.<.ctor>b__0(IFunctionInstanceEx i) at C:\projects\azure-webjobs-sdk-rqm4t\src\Microsoft.Azure.WebJobs.Host\Executors\ActivatorInstanceFactory.cs : 20 at Microsoft.Azure.WebJobs.Host.Executors.ActivatorInstanceFactory1.Create(IFunctionInstanceEx functionInstance) at C:\projects\azure-webjobs-sdk-rqm4t\src\Microsoft.Azure.WebJobs.Host\Executors\ActivatorInstanceFactory.cs : 26 at Microsoft.Azure.WebJobs.Host.Executors.FunctionInvoker`2.CreateInstance(IFunctionInstanceEx functionInstance) at C:\projects\azure-webjobs-sdk-rqm4t\src\Microsoft.Azure.WebJobs.Host\Executors\FunctionInvoker.cs : 44 at Microsoft.Azure.WebJobs.Host.Executors.FunctionExecutor.ParameterHelper.Initialize() at C:\projects\azure-webjobs-sdk-rqm4t\src\Microsoft.Azure.WebJobs.Host\Executors\FunctionExecutor.cs : 846 at async Microsoft.Azure.WebJobs.Host.Executors.FunctionExecutor.TryExecuteAsyncCore(IFunctionInstanceEx functionInstance,CancellationToken cancellationToken) at C:\projects\azure-webjobs-sdk-rqm4t\src\Microsoft.Azure.WebJobs.Host\Executors\FunctionExecutor.cs : 117

最佳答案

尝试检查 SqlConnection 的命名空间在启动和 Test.Sample.Sample classes .问题是有两个名称几乎相同的类( Microsoft.Data.SqlClient.SqlConnectionSystem.Data.SqlClient.SqlConnection )。
两个类中的类型必须相同。

关于c# - 依赖注入(inject)在 Azure 功能中失败,一旦部署,但在本地工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59162492/

相关文章:

c# - 版本 ASP.Net Core

c# - 如何测量图像上物体的实际尺寸?

c# - C# 桌面应用程序许可证

c# - Windows.UI.Xaml.Media ==> 没有画笔

c# - 如何在 Azure Function App 中运行时更新应用程序设置中的单个值

azure - Azure Function 应用程序重新启动操作会产生什么后果?

spring - 如何使用注解进行 Spring Lookup 方法注入(inject)?

.net - Simple Injector 是否可以通过对象工厂注册条件?

angular - 如何将窗口注入(inject) Angular 2.1.0

azure - 如何从 Nodejs 堆栈上的 Azure Function App 中的 Azure key 保管库中提取 key