SignalR Удаленное подключение к RemoteDesktop - PullRequest
0 голосов
/ 15 ноября 2018

Простая ситуация.Как подключиться к приложению сервера 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 в посте, кстати, так что это не реально .. PS Если я использую url = @ "http://*8080/" на стороне сервера, компилятор выдает" HttpListenerException: доступ запрещен "...

1 Ответ

0 голосов
/ 15 ноября 2018

Проблема решена путем открытия соединения на стороне сервера с использованием CMD в качестве администратора и ввода:

netsh http add urlacl http://*:8080/ user=EVERYONE

Также убедитесь, что порты открыты в брандмауэре.Разработка приложений .NET Сервисы WebSocket в ISS также должны быть включены.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...