我對當前項目使用IdentityServer3版本(2.5.4),在本地計算機(使用IIS和IIS Express)上一切正常。IdentityServer3無法從
客戶安裝了.NET 4.5的Windows7嵌入式機器(無SP1!),我們創建了一個自簽名的SSL證書(使用當前主機名,不是localhost),但它不起作用。我總是收到錯誤「無法獲取文檔:https://xyz/.well-known/openid-configuration」
配置有什麼問題?
我對當前項目使用IdentityServer3版本(2.5.4),在本地計算機(使用IIS和IIS Express)上一切正常。IdentityServer3無法從
客戶安裝了.NET 4.5的Windows7嵌入式機器(無SP1!),我們創建了一個自簽名的SSL證書(使用當前主機名,不是localhost),但它不起作用。我總是收到錯誤「無法獲取文檔:https://xyz/.well-known/openid-configuration」
配置有什麼問題?
我找到了解決方案,它無關的配置。 Windows 7 SP1的安裝修復了它。
在我們遇到這個問題的幾個案例中,主要涉及到網絡連接。
很少有事情,幫助我們找出根源 -
訪問從服務器上的瀏覽器「https://xyz/.well-known/openid-configuration」的路線。
如果您無法訪問url,則表示服務器無法連接到Idserver安裝。這是一個網絡級別的問題。
如果您能夠從託管依賴應用程序的服務器訪問url,但依賴應用程序發出錯誤 - >這意味着在服務器上配置了代理。瀏覽器會自動使用代理服務器,在那裏,你必須在startup.cs設置代理的依賴方應用程序如下
var request = WebRequest.Create(uri);
var myProxy = new WebProxy {Address = new Uri("proxy uri")};
request.Proxy = myProxy;
var response = request.GetResponse();
這將確保所有從代碼發起HTTP請求也將使用相同的代理。
如果上述不起作用,請檢查IIS服務器的安裝位置是否允許TLS 1.0和1.1。出於安全考慮,在某些服務器上禁用此功能。如果是這樣的情況下,使用下面的代碼,使烏拉圭回合的應用程序使用TLS 1.2,調用將成功
ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12;
我收到錯誤,當我嘗試直接在服務器上打開鏈接。我不認爲這是一個網絡問題。我們在Startup.cs(配置方法內部)'System.Net.ServicePointManager.SecurityProtocol = System.Net.SecurityProtocolType.Tls12;'中添加了以下代碼,但它仍然不起作用。它與Windows 7 Embedded Standard(無SP1)有關嗎? – pbachman
這可能與idServer設置有關。請檢查idserver安裝web文件夾中的trace.log文件。日誌文件會導致您遇到實際問題。 – jkr
你是指什麼設置或安裝文件夾?在服務器上只是我們idServer項目的部署版本(包括IdentityServer3 DLL)。是否有任何先決條件,應該安裝在服務器上?我可以打開IdentityServer3的起始頁面(通過https://主機名稱),但是我無法打開https://hostname-of-the-server/.well-known/openid-configuration上的鏈接服務器上的瀏覽器。 – pbachman