2016-07-12 76 views
3

我工作的一個應用程序,我在Startup.cs部分類得到一個錯誤,我找不到爲什麼這個錯誤顯示出來:asp.net的MVC核心的呼叫以下方法或屬性之間曖昧:

呼叫是下列方法或屬性之間曖昧: Microsoft.Extensions.DependencyInjection.OptionsServiceCollectionExtensions.Configure(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Action) Microsoft.Extensions.DependencyInjection.OptionsServiceCollectionExtensions.Configure(Microsoft.Extensions .DependencyInjection.IServiceCollection,System.Action)

我的t WO局部Startup.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依賴性

「依賴性」:{ 「Braintree的」: 「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.Extensions.Confi guration.EnvironmentVariables「:」1.0.0「, 」Microsoft.Extensions.Configuration.FileExtensions「:」1.0.0「, 」Microsoft.Extensions.Configuration.Json「:」1.0.0「, 」Microsoft.Extensions .Logging「:」1.0.0「, 」Microsoft.Extensions.Logging.Console「:」1.0.0「, 」Microsoft.Extensions.Logging.Debug「:」1.0.0「, 」Microsoft.Extensions。選項「:」1.0.0「, 」Microsoft.Extensions.Options.ConfigurationExtensions「:」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」, 「貝寶」: 「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")); 

日Thnx

回答

5

這是因爲你混合包版本 - 你混合RC1(Microsoft.AspNet.Mvc.Core": "6.0.0-rc1-final")與1.0.0。將所有內容移至1.0.0。

+0

Thnx,我在此期間想通了。 – Wasyster

相關問題