我正在尝试构建一个 C# SignalR 应用程序(服务器上的控制台应用程序,客户端上的 winforms 应用程序),当客户端和服务器都在同一台 PC 上时它工作得很好(在 Visual Studio 中),但是当我部署服务器并将客户端重新指向服务器,我在尝试启动时收到“需要 407 代理身份验证”异常。
这是我的代码...
var _connection = new HubConnection("http://www.redacted.com:8088/");
var _hub = _connection.CreateProxy("MyHub");
_connection.Start().ContinueWith(task =>
{
if (task.IsFaulted)
MessageBox.Show(string.Format("Could not connect - {0}", task.Exception.ToString()));
}).Wait();
我注意到 HubConnection 有一个 Credentials 属性,所以我想我会尝试替换一些在处理代理时用于 WebServices 的代码(如下所示,我只是发出一个 HTTP 请求,然后获取代理设置和凭据),但我得到了同样的例外。
var _connection = new HubConnection("http://www.redacted.com:8088/");
var req = (HttpWebRequest)WebRequest.Create("http://www.google.com");
var proxy = new WebProxy(req.Proxy.GetProxy(req.RequestUri).AbsoluteUri) {UseDefaultCredentials = true};
_connection.Credentials = proxy.Credentials;
var _hub = _connection.CreateProxy("MyHub");
_connection.Start().ContinueWith(task =>
{
if (task.IsFaulted)
MessageBox.Show(string.Format("Could not connect - {0}", task.Exception.ToString()));
}).Wait();
这是我为客户所做的一些工作所必需的,他们希望他们的本地 PC 能够从公司外部托管的远程系统接收消息。
谢谢!