任务被取消

问题描述:

我正尝试在同一个启动*同承载identityserver3和web api(用于使用持票人令牌的用户管理)。但是,我收到以下错误: 任务被取消。 当尝试拨打http://identity_local/core/.well-known/openid-configuration(identity_local指向本地主机)时,似乎任务取消在启动时发生。任务被取消

我启动如下:

app.Map("/core", idsrvApp => 
     { 
      var factory = new IdentityServerServiceFactory(); 
      factory.UserService = new IdentityServer3.Core.Configuration.Registration<IUserService, UserService>(); 
      factory.ScopeStore = new IdentityServer3.Core.Configuration.Registration<IScopeStore>(resolver => scopeStore); 
      var options = new IdentityServerOptions 
      { 
       SigningCertificate = Certificate.Load(), 
       IssuerUri = "http://identity_local/core", 
       PublicOrigin = "http://identity_local", 
       RequireSsl = false, //for now 
       Factory = factory, 
      }; 

      idsrvApp.UseIdentityServer(options); 
     }); 

     app.Map("/admin", adminApp => 
     { 
      adminApp.UseIdentityServerBearerTokenAuthentication(new IdentityServerBearerTokenAuthenticationOptions 
      { 
       Authority = "http://identity_local/core", 
       IssuerName = "identity_local", 
       ValidationMode = ValidationMode.Local, 
       RequiredScopes = new[] { "api", "roles" } 
      }); 

      adminApp.UseResourceAuthorization(new AuthorisationManager()); 

      var config = new HttpConfiguration(); 
      config.MapHttpAttributeRoutes(); 

      adminApp.UseCors(CorsOptions.AllowAll); 
      adminApp.UseWebApi(config); 

     }); 

有谁知道如果)有可能都在相同的启动和b)如果是这样,我做了什么错误或我能做些什么来有补救以上。

在启动时UseIdentityServerBearerTokenAuthentication试图联系IdentityServer metatadata终点,但因为服务器尚未运行它无法连接,从而错误。

对于这种情况,有一个叫DelayLoadMetadata延迟加载元数据在第一时间它的需要,直到标志:https://identityserver.github.io/Documentation/docsv2/consuming/options.html

+0

你是我的英雄!我正在寻找一个星期的解决方案。而简单地设置'DelayLoadMetadata = TRUE;在'IdentityServerBearerTokenAuthenticationOptions'没有的伎俩。这应该definitley被标记为正确的答案。实际上它应该在IdentityServer3的入门演练中。 – Michael