Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/303.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/36.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# 未找到具有';Autofac.Core.Activators.Reflection.DefaultConstructorFinder';asp.net核心3.1_C#_Asp.net_Asp.net Mvc_Asp.net Core - Fatal编程技术网

C# 未找到具有';Autofac.Core.Activators.Reflection.DefaultConstructorFinder';asp.net核心3.1

C# 未找到具有';Autofac.Core.Activators.Reflection.DefaultConstructorFinder';asp.net核心3.1,c#,asp.net,asp.net-mvc,asp.net-core,C#,Asp.net,Asp.net Mvc,Asp.net Core,我正在尝试使用IRazorViewToStringRenderer作为依赖项注入 注册IRazorViewToStringRenderer,如下代码所示 public virtual void ConfigureContainer(ContainerBuilder builder) { builder.RegisterType<RazorViewToStringRenderer>().As<IRazorViewToStringRender

我正在尝试使用IRazorViewToStringRenderer作为依赖项注入

注册IRazorViewToStringRenderer,如下代码所示

public virtual void ConfigureContainer(ContainerBuilder builder)
        {
            builder.RegisterType<RazorViewToStringRenderer>().As<IRazorViewToStringRenderer>().SingleInstance();
            builder.AddMonashSecurityModel();
        }
Program.cs

公共课程 {

        public const string ApplicationName = "XXXXXXX";


        public const string ResourceIdentifier = "XXXXXXX";


        public static IConfiguration Configuration { get; } = new ConfigurationBuilder()
            .SetBasePath(Directory.GetCurrentDirectory())
            .AddJsonFile("appsettings.json", optional: false, reloadOnChange: true)
            .AddJsonFile($"appsettings.{Environment.GetEnvironmentVariable("ASPNETCORE_ENVIRONMENT")}.json", optional: true)
            .AddJsonFile("error-settings.json")
            .AddEnvironmentVariables()
            .Build();


        public static int Main(string[] args)
        {
            Log.Logger = Configuration
                .GetLoggerConfiguration(includeEnvironmentVariables: true)
                .CreateLogger();

            try
            {
                Log.Logger.Information("{ApplicationName} is starting up...", ApplicationName);
                BuildWebHost(args)
                    .Build()
                    .Run();

                return 0;
            }
            catch (Exception ex)
            {
                Log.Logger.Fatal(ex, "Host terminated unexpectedly");
                return 1;
            }
        }


        public static IHostBuilder BuildWebHost(string[] args) =>
            Host.CreateDefaultBuilder(args)
                .UseServiceProviderFactory(new AutofacServiceProviderFactory())
                .ConfigureWebHostDefaults(webBuilder =>
                {
                    webBuilder
                        .UseConfiguration(Configuration)
                        .ConfigureLogging((ctx, loggingBuilder) =>
                        {
                            ctx.Configuration.ConfigureLogging(
                                loggingBuilder,
                                loggerConfig => loggerConfig
                                    .Enrich.WithProperty("SystemIdentifier", Program.ApplicationName)
                                    .Enrich.WithTraceIdentifier()
                            );
                        })
                        .ConfigureServices(x => x.AddAutofac())
                        .ConfigureAppConfiguration((context, configBuilder) =>
                        {
                            var vaultConfig = new AzureKeyVaultOptions();
                            Configuration.GetSection("AzureKeyVault").Bind(vaultConfig);

                            configBuilder.ConfigureAzureKeyVault(vaultConfig);

                        }).UseStartup<Startup>();
                });
    }
public const string ApplicationName=“XXXXXXX”;
public const string ResourceIdentifier=“XXXXXXX”;
公共静态IConfiguration配置{get;}=new ConfigurationBuilder()
.SetBasePath(目录.GetCurrentDirectory())
.AddJsonFile(“appsettings.json”,可选:false,reloadOnChange:true)
.AddJsonFile($“appsettings.{Environment.GetEnvironmentVariable(“ASPNETCORE_Environment”)}.json),可选:true)
.AddJsonFile(“error settings.json”)
.AddenEnvironmentVariables()
.Build();
公共静态int Main(字符串[]args)
{
Log.Logger=配置
.GetLoggerConfiguration(包括环境变量:true)
.CreateLogger();
尝试
{
Log.Logger.Information(“{ApplicationName}正在启动…”,ApplicationName);
BuildWebHost(args)
.Build()
.Run();
返回0;
}
捕获(例外情况除外)
{
Logger.Fatal(例如,“主机意外终止”);
返回1;
}
}
公共静态IHostBuilder BuildWebHost(字符串[]args)=>
Host.CreateDefaultBuilder(args)
.UseServiceProviderFactory(新的AutofacServiceProviderFactory())
.ConfigureWebHostDefaults(webBuilder=>
{
韦伯造船厂
.UseConfiguration(配置)
.ConfigureLogging((ctx、loggingBuilder)=>
{
ctx.Configuration.ConfigureLogging(
伐木工人,
loggerConfig=>loggerConfig
.Enrich.WithProperty(“系统标识符”,Program.ApplicationName)
.Enrich.WithTraceIdentifier()
);
})
.ConfigureServices(x=>x.AddAutofac())
.ConfigureAppConfiguration((上下文,configBuilder)=>
{
var vaultConfig=new AzureKeyVaultOptions();
Configuration.GetSection(“AzureKeyVault”).Bind(vaultConfig);
configBuilder.ConfigureAzureKeyVault(Vault配置);
}).UseStartup();
});
}
参考资料


您是否已注册了注入所需的依赖项?Autofac建议您没有注册。我需要注册IRazorViewEngine、ITempDataProvider和IServiceProvider吗?我使用了GIT hub源公共void配置服务(IServiceCollection服务){services.AddTransient();services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_2)中的代码}在这里,他们没有注册另一个。为什么我需要注册另一个Autofac可能没有与开箱即用DI服务相同的默认依赖项注册。尝试添加
builder.RegisterType().As().SingleInstance()
并查看错误是否从抱怨无法解析
IRazorViewEngine viewEngine
转移到下一个参数。你能链接你所指的GitHub回购协议吗?
x-exception: DependencyResolutionException 
 x-message: None of the constructors found with 'Autofac.Core.Activators.Reflection.DefaultConstructorFinder' on type 'Monash.Identity.Api.Services.RazorViewToStringRenderer' can be invoked with the available services and parameters:Cannot resolve parameter 'Microsoft.AspNetCore.Mvc.Razor.IRazorViewEngine viewEngine' of constructor 'Void .ctor(Microsoft.AspNetCore.Mvc.Razor.IRazorViewEngine, Microsoft.AspNetCore.Mvc.ViewFeatures.ITempDataProvider, System.IServiceProvider)'. 
 x-powered-by: ASP.NET
        public const string ApplicationName = "XXXXXXX";


        public const string ResourceIdentifier = "XXXXXXX";


        public static IConfiguration Configuration { get; } = new ConfigurationBuilder()
            .SetBasePath(Directory.GetCurrentDirectory())
            .AddJsonFile("appsettings.json", optional: false, reloadOnChange: true)
            .AddJsonFile($"appsettings.{Environment.GetEnvironmentVariable("ASPNETCORE_ENVIRONMENT")}.json", optional: true)
            .AddJsonFile("error-settings.json")
            .AddEnvironmentVariables()
            .Build();


        public static int Main(string[] args)
        {
            Log.Logger = Configuration
                .GetLoggerConfiguration(includeEnvironmentVariables: true)
                .CreateLogger();

            try
            {
                Log.Logger.Information("{ApplicationName} is starting up...", ApplicationName);
                BuildWebHost(args)
                    .Build()
                    .Run();

                return 0;
            }
            catch (Exception ex)
            {
                Log.Logger.Fatal(ex, "Host terminated unexpectedly");
                return 1;
            }
        }


        public static IHostBuilder BuildWebHost(string[] args) =>
            Host.CreateDefaultBuilder(args)
                .UseServiceProviderFactory(new AutofacServiceProviderFactory())
                .ConfigureWebHostDefaults(webBuilder =>
                {
                    webBuilder
                        .UseConfiguration(Configuration)
                        .ConfigureLogging((ctx, loggingBuilder) =>
                        {
                            ctx.Configuration.ConfigureLogging(
                                loggingBuilder,
                                loggerConfig => loggerConfig
                                    .Enrich.WithProperty("SystemIdentifier", Program.ApplicationName)
                                    .Enrich.WithTraceIdentifier()
                            );
                        })
                        .ConfigureServices(x => x.AddAutofac())
                        .ConfigureAppConfiguration((context, configBuilder) =>
                        {
                            var vaultConfig = new AzureKeyVaultOptions();
                            Configuration.GetSection("AzureKeyVault").Bind(vaultConfig);

                            configBuilder.ConfigureAzureKeyVault(vaultConfig);

                        }).UseStartup<Startup>();
                });
    }