2017-08-16 82 views
-2

我很認同服務器4正與.NET芯微服務架構,我按照這個參考應用程序,請點擊Here。我也用泊塢窗容器部署分佈式方法application.its工作正常時,它處於發展階段,即當地環境。身份服務器負載均衡註銷問題

,但對生產我使用標識服務器上的負載均衡,因爲負載均衡的我面臨退出問題。

例。我已經建立身份服務器的3個實例用於生產目的,即A,B和C的基礎上,用戶加載它將instances.Now之間自動切換的問題是,當用戶在一個實例中幾秒鐘後,它自動請求向B或C實例登錄由於負載均衡,所以問題是用戶登錄一個實例和當前請求由B或C實例處理,以便服務器如何知道該用戶是否已登錄,這就是爲什麼它註銷我並重定向到登錄屏幕。

編輯: Please check with Identity server configuration and operational store with signin certificate

+0

你是如何「登陸」到你的身份服務器 - 它不會登錄你,它會返回一個訪問令牌,你使用的是JWT還是Reference Token?如果你正在使用參考標記,你如何堅持它們? – Mashton

+0

我使用默認的MVC身份身份的服務器和客戶端登錄訪問,我使用app.UseOpenIdConnectAuthentication(新OpenIdConnectOptions {})與服務器的身份驗證 –

+0

是你的令牌被持久化,或保存在內存中?如果堅持,那麼在哪裏? – Mashton

回答

0

我相信你有這個問題是由於在asp.net核心數據保護,每個集裝箱將使用不同的密鑰來加密/解密數據。爲了驗證只需運行容器的一個實例,如果這個解決了,然後你的問題看:https://docs.microsoft.com/en-us/aspnet/core/security/data-protection/

public class XmlToDbRepository : IXmlRepository 
     { 
      private readonly IPersistKeyDb _persistKeyDb; 

      public XmlToDbRepository(IPersistKeyDb persistKeyDb) 
      { 
       _persistKeyDb = persistKeyDb; 
      } 

      public IReadOnlyCollection<XElement> GetAllElements() 
      { 
       return _persistKeyDb.GetAll().Select(i => XElement.Parse(i.Key)).ToList().AsReadOnly(); 
      } 

      public void StoreElement(XElement element, string friendlyName) 
      { 
       _persistKeyDb.Store(friendlyName,element.ToString(SaveOptions.None)); 
      } 
     } 

我覺得這是一個你感興趣的