2013-04-24 118 views
0

我正在使用SignalR 1.1測試版。我的控制器代碼如下SignalR 1.1 Beta1和服務器證書

_signalUrl = "https://localhost/signalr"; 
_hubConnection = new HubConnection(_signalUrl); 
_proxy = _hubConnection.CreateHubProxy("MyHub"); 
_hubConnection.Start().Wait(); // throws error 

下面是錯誤的詳細信息

的InnerException {「基礎連接已關閉:無法爲SSL/TLS安全通道的信任關係」} {System.Exception的System.Net.WebException}

的InnerException { 「的遠程證書根據驗證過程是無效的。」} {的System.Exception} System.Security.Authentication.AuthenticationException

堆棧跟蹤 at System.Threading.Tasks.Task.ThrowIfExceptional(Boolean includeTaskCanceledExceptions) at System.Threading.Tasks.Task.Wait()返回System.Threading.Tasks.Task.Wait(Int32 millisecondsTimeout,CancellationToken cancellationToken) 。

當部署到證書服務器時,使用域名(https://domainname.com/signalr)正常工作。但不能與IP地址(https://IPAddress/signalr)。

還嘗試通過下面的代碼添加客戶端證書。

_proxy = _hubConnection.CreateHubProxy("MyHub"); 
X509Certificate certificate = X509Certificate.CreateFromCertFile("MyCert.cer"); 
_hubConnection.Start(new MyHttpClient() { Certificate = certificate }).Wait(); 

如何在啓動集線器連接之前配置自定義客戶端證書?

任何想法,在此先感謝。

Praveen

回答

0

將證書添加到集合中。

_hubConnection = new HubConnection(_signalUrl); 
_proxy = _hubConnection.CreateHubProxy("MyHub"); 
_hubConnection.AddClientCertificate(X509Certificate.CreateFromCertFile("MyCert.cer")); 
_hubConnection.Start().Wait(); 
+0

感謝大衛,我已經下載使用下面的命令PM>安裝,包裝Microsoft.AspNet.SignalR - 售前的client.dll詳情如下Microsoft.AspNet.SignalR.Client從NuGet包的測試版(16757 ...) 文件版本1.1.20410.0 產品版本1.1.0-beta1。無法看到AddClientCertificate方法 – user2314647 2013-04-24 09:14:08