2013-04-24 113 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