asp.net mvc 核心 以下方法或属性之间的调用不明确:

本文关键字:之间 属性 调用 不明确 方法 mvc net 核心 asp | 更新日期: 2023-09-27 17:56:37

我正在处理一个应用程序,我在 Startup.cs 部分类中遇到错误,我找不到为什么会出现此错误:

调用在以下方法或属性之间不明确:Microsoft.Extensions.DependencyInjection.OptionsServiceCollectionExtensions.Configure(Microsoft.Extensions.DependencyInjection.IServiceCollection, System.Action)Microsoft.Extensions.DependencyInjection.OptionsServiceCollectionExtensions.Configure(Microsoft.Extensions.DependencyInjection.IServiceCollection, System.Action)

我的两个部分启动.cs类是

using Microsoft.Extensions.DependencyInjection;
using System.Security.Claims;
using Microsoft.AspNetCore.Http;
using Microsoft.Extensions.Configuration;

namespace GiftUWish.WebAPI
{
    public partial class Startup
    {
        private void SetServices(IServiceCollection services)
        {
            //PROFILE service and repository
            services.AddScoped<IProfileService, ProfileService>();
            services.AddScoped<IProfileRepository, ProfileRepository>();
            ////GIFT service and repository
            services.AddScoped<IBankAccountService, BankAccountService>();
            services.AddScoped<IBankAccountRepository, BankAccountRepository>();
            //EVENT service and repository
            services.AddScoped<ICreditCardService, CreditCardService>();
            services.AddScoped<ICreditCardRepository, CreditCardRepository>();

            //CREDIT CARD INFORMATION serice and repository
            services.AddScoped<IPayPalService, PayPalService>();
            services.AddScoped<IPayPalRepository, PayPalRepository>();
            //CHIPPED IN serive and repository
            services.AddScoped<IShippingAdressService, ShippingAdressService>();
            services.AddScoped<IShippingAdressRepository, ShippingAdressRepository>();
            //UNIT OF WORK
            services.AddScoped<IUnitOfWork, UnitOfWork>();
            //Authentication-Token , Header which contains information about user from Identity Server
            services.AddTransient<ClaimsPrincipal>(s => s.GetService<IHttpContextAccessor>().HttpContext.User);
            //Facebook Graph API
            services.AddScoped<IApi, Service.FacebbokGraph.API>();
            //Setup configuration settings form appsettings.json
            services.Configure<FacebookApiSettings>(Configuration.GetSection("Facebook"));
            services.Configure<BrainTreeSettings>(Configuration.GetSection("Paiment:BrainTree"));
            services.Configure<PayPalAdaptivePaymentsAPI>(Configuration.GetSection("Paiment:PayPal:PayPalAdaptivePaymentsAPI"));
            services.Configure<PayPalNonAdaptivePaymentsAPI>(Configuration.GetSection("Paiment:PayPal:PayPalNonAdaptivePaymentsAPI"));
            services.Configure<PayPalPayFlow>(Configuration.GetSection("Paiment:PayPal:PayPalPayFlow"));
            services.AddSingleton<IConfiguration>(Configuration);
        }
    }
}

using Microsoft.AspNetCore.Authentication.Cookies;
using Microsoft.AspNetCore.Builder;
using Microsoft.AspNetCore.Hosting;
using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Mvc;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Logging;
using Newtonsoft.Json.Serialization;
using System.Threading.Tasks;
namespace GiftUWish.WebAPI
{
    public partial class Startup
    {
        public static IConfiguration Configuration { get; set; }
        private readonly string Audience = "https://localhost:44362/";
        public Startup(IHostingEnvironment env)
        {
            var builder = new ConfigurationBuilder()
                .SetBasePath(env.ContentRootPath)
                .AddJsonFile("appsettings.json", optional: true, reloadOnChange: true)
                .AddJsonFile($"appsettings.{env.EnvironmentName}.json", optional: true)
                .AddEnvironmentVariables();
            Configuration = builder.Build();
        }
        // This method gets called by the runtime. Use this method to add services to the container.
        public void ConfigureServices(IServiceCollection services)
        {
            // Add framework services.
            services
                .AddMvc(options =>
                {
                    options.Filters.Add(new RequireHttpsAttribute());
                })
                .AddJsonOptions(options =>
                {
                    options.SerializerSettings.ContractResolver = new CamelCasePropertyNamesContractResolver();
                });
            services.Configure<CookieAuthenticationOptions>(options =>
            {
                options.Events = new CookieAuthenticationEvents()
                {
                    OnRedirectToLogin = ctx =>
                    {
                        if (ctx.Request.Path.StartsWithSegments("/api") && ctx.Response.StatusCode == 200)
                        {
                            ctx.Response.StatusCode = (int)System.Net.HttpStatusCode.Unauthorized;
                            return Task.FromResult<object>(null);
                        }
                        else
                        {
                            ctx.Response.Redirect(ctx.RedirectUri);
                            return Task.FromResult<object>(null);
                        }
                    }
                };
            });

            //Add DI and other services
            SetServices(services);
        }
        // This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
        public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory)
        {
            loggerFactory.AddConsole(Configuration.GetSection("Logging"));
            loggerFactory.AddDebug();
            app.UseDeveloperExceptionPage();
            CookieAuthenticationOptions options = new CookieAuthenticationOptions();
            options.AuthenticationScheme = "Cookies";
            options.CookieName = "GUW Cookie";
            options.AutomaticAuthenticate = true;
            options.AutomaticChallenge = true;
            options.LoginPath = new PathString("/Account/Login");
            options.Events = new CustomCookieAuthenticationEvents();
            app.UseCookieAuthentication(options);
            app.UseMvc();
        }
    }
}

Project.json 依赖项

"依赖关系":{ "布伦特里": "2.61.0", "Microsoft.AspNet.Mvc.Core": "6.0.0-rc1-final", "Microsoft.AspNetCore.Diagnostics": "1.0.0", "Microsoft.AspNetCore.Identity": "1.0.0", "Microsoft.AspNetCore.Mvc": "1.0.0", "Microsoft.AspNetCore.Server.IISIntegration": "1.0.0", "Microsoft.AspNetCore.Server.Kestrel": "1.0.0", "Microsoft.扩展.配置.环境变量": "1.0.0", "Microsoft.扩展.配置.文件扩展名": "1.0.0", "Microsoft.Extensions.Configuration.Json": "1.0.0", "Microsoft.扩展.日志记录": "1.0.0", "Microsoft.扩展.日志记录.控制台": "1.0.0", "Microsoft.Extensions.Logging.Debug": "1.0.0", "Microsoft.扩展.选项": "1.0.0", "Microsoft.扩展.选项.配置扩展": "1.0.0", "Microsoft.IdentityModel.Tokens": "5.0.0", "Microsoft.Owin.Security.Cookies": "3.0.1", "Microsoft.Owin.Security.OAuth": "3.0.1", "Newtonsoft.Json": "9.0.1", "PayPal": "1.7.3", "PayPalAdaptiveAccountsSDK": "2.9.110", "PayPalAdaptivePaymentsSDK": "2.15.117", "PayPalCoreSDK": "1.7.1", "PayPalMerchantSDK": "2.16.117", "System.IdentityModel.Tokens.Jwt": "5.0.0" },

错误在这里:

services.Configure<FacebookApiSettings>(Configuration.GetSection("Facebook"));
            services.Configure<BrainTreeSettings>(Configuration.GetSection("Paiment:BrainTree"));
            services.Configure<PayPalAdaptivePaymentsAPI>(Configuration.GetSection("Paiment:PayPal:PayPalAdaptivePaymentsAPI"));
            services.Configure<PayPalNonAdaptivePaymentsAPI>(Configuration.GetSection("Paiment:PayPal:PayPalNonAdaptivePaymentsAPI"));
            services.Configure<PayPalPayFlow>(Configuration.GetSection("Paiment:PayPal:PayPalPayFlow"));

asp.net mvc 核心 以下方法或属性之间的调用不明确:

这是因为您混合了软件包版本 - 您将rc1(Microsoft.AspNet.Mvc.Core": "6.0.0-rc1-final")与1.0.0混合在一起。将所有内容移至 1.0.0。