【发布时间】:2020-03-28 10:58:37
【问题描述】:
我有一个类,它有一个以SqlConnection 作为参数的公共构造函数。
private readonly SqlConnection _sqlConnection;
public Sample(SqlConnection sqlConnection)
{
_sqlConnection = sqlConnection;
}
在 Startup 文件中我正在尝试做 DI
var sqlConnection = new SqlConnection(Environment.GetEnvironmentVariable("AzureSQLConnection"));
builder.Services.AddSingleton<SqlConnection>(sqlConnection);
它在本地运行,但在部署到 Azure 时失败并出现错误
System.InvalidOperationException:无法解析服务类型 尝试激活时出现“System.Data.SqlClient.SqlConnection” '测试.样品.样品'。在 Microsoft.Extensions.DependencyInjection.ActivatorUtilities.GetService(IServiceProvider sp,Type type,Type requiredBy,Boolean isDefaultParameterRequired) at lambda_method(闭包,IServiceProvider,Object[])在 Microsoft.Azure.WebJobs.Host.Executors.DefaultJobActivator.CreateInstance[T](IServiceProvider 服务提供商)在 C:\projects\azure-webjobs-sdk-rqm4t\src\Microsoft.Azure.WebJobs.Host\Executors\DefaultJobActivator.cs : 37 在 Microsoft.Azure.WebJobs.Host.Executors.DefaultJobActivator.CreateInstance[T](IFunctionInstanceEx 函数实例)在 C:\projects\azure-webjobs-sdk-rqm4t\src\Microsoft.Azure.WebJobs.Host\Executors\DefaultJobActivator.cs : 32 在 Microsoft.Azure.WebJobs.Host.Executors.ActivatorInstanceFactory
1.<>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 函数实例)在 C:\projects\azure-webjobs-sdk-rqm4t\src\Microsoft.Azure.WebJobs.Host\Executors\ActivatorInstanceFactory.cs : 26 在 Microsoft.Azure.WebJobs.Host.Executors.FunctionInvoker`2.CreateInstance(IFunctionInstanceEx 函数实例)在 C:\projects\azure-webjobs-sdk-rqm4t\src\Microsoft.Azure.WebJobs.Host\Executors\FunctionInvoker.cs : 44 在 Microsoft.Azure.WebJobs.Host.Executors.FunctionExecutor.ParameterHelper.Initialize() 在 C:\projects\azure-webjobs-sdk-rqm4t\src\Microsoft.Azure.WebJobs.Host\Executors\FunctionExecutor.cs : 846 异步 Microsoft.Azure.WebJobs.Host.Executors.FunctionExecutor.TryExecuteAsyncCore(IFunctionInstanceEx 函数实例,CancellationToken 取消令牌)在 C:\projects\azure-webjobs-sdk-rqm4t\src\Microsoft.Azure.WebJobs.Host\Executors\FunctionExecutor.cs : 117
【问题讨论】:
-
这很奇怪,因为您确实在服务集合中注册了它。
-
找到解决方案了吗?
标签: c# dependency-injection azure-function-app