情况简单。如何使用计算机上的客户端连接到远程桌面服务器(已启用端口)中的SignalR服务器应用程序。当在本地主机中进行连接时,连接工作完美,一旦我将远程计算机IP设置为错误400。
服务器端:
namespace SignalRHub
{
class Program
{
static void Main(string[] args)
{
string url = @"http://localhost:8080/";
using (WebApp.Start<Startup>(url))
{
Console.WriteLine(string.Format("Server running at {0}", url));
Console.ReadLine();
}
}
}
class Startup
{
public void Configuration(IAppBuilder app)
{
app.UseCors(CorsOptions.AllowAll);
app.MapSignalR();
}
}
[HubName("TestHub")]
public class TestHub : Hub
{
public void DetermineLength(string message)
{
Console.WriteLine(message);
string newMessage = string.Format(@"{0} has a length of: {1}", message, message.Length);
Clients.All.ReceiveLength(newMessage);
}
}
}
客户端
namespace SignalRClient
{
class Program
{
static void Main(string[] args)
{
IHubProxy _hub;
//string url = @"http://localhost:8080/";
string url = @"http://111.11.11.111:8080";
var connection = new HubConnection(url);
_hub = connection.CreateHubProxy("TestHub");
try
{
connection.Start().Wait();
Console.WriteLine("Connection OK. Connected to: "+url);
}
catch (Exception e)
{
Console.WriteLine(e);
Console.ReadLine();
throw;
}
_hub.On("ReceiveLength", x => Console.WriteLine(x));
string line = null;
while ((line = System.Console.ReadLine()) != null)
{
_hub.Invoke("DetermineLength", line).Wait();
}
Console.Read();
}
}
}
错误提示:
“ System.AggregateException:发生一个或多个错误。---> Microsoft.AspNet.SignalR.Client.HttpClientException:StatusCode:400,ReasonPhrase:'Bad Request'”
我知道也有类似的话题,但是由于我只熟悉C#控制台和Windows应用程序,因此找到一种将应用程序连接到应用程序的解决方案非常好。我的RDP服务器完全可以访问,我在那里运行数据库和其他服务,因此问题显然出在代码中。我已经在后期更改了IP,所以它不是真实的。 附言如果我在服务器端使用url = @“ http:// * 8080 /”,则编译器将显示“ HttpListenerException:访问被拒绝” ...
答案 0 :(得分:0)
通过使用CMD作为管理员在服务器端打开连接并放置以下内容来解决问题:
netsh http add urlacl http://*:8080/ user=EVERYONE
还要确保在防火墙中打开了端口。 .NET应用程序开发ISS中的WebSocket服务也必须启用。