我有一个类,它有一个公共(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.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.ActivatorInstanceFactory
1.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.SqlConnection
和 System.Data.SqlClient.SqlConnection
)。
两个类中的类型必须相同。
关于c# - 依赖注入(inject)在 Azure 功能中失败,一旦部署,但在本地工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59162492/