Websocket не работает с сервисом приложений Azure - PullRequest
0 голосов
/ 13 июля 2020

Я работаю над приложением websocket. Я использовал Fleck (C# library) для сервера websocket. Эта демонстрация работает на моем локальном хосте, но когда я развертываю ее в Azure webapp, она выдает ошибку

System. Net .Sockets.SocketException (0x80004005): была предпринята попытка доступа к сокету способом запрещен разрешениями на доступ в System. Net .Sockets.Socket.DoBind (EndPoint endPointSnapshot, SocketAddress socketAddress) в System. Net .Sockets.Socket.Bind (EndPoint localEP) в Fleck.SocketWrapper.Bind (EndPoint endPoint) в Fleck.WebSocketServer.Start (конфигурация Action`1) в FleckDemo2.FleckSocket.Start ()

Ниже приведен фрагмент кода для запуска веб-сокета:

string ipAddress = string.Empty;
            var host = System.Net.Dns.GetHostEntry(Dns.GetHostName());

            List<IWebSocketConnection> sockets = new List<IWebSocketConnection>();

            foreach (var ip in host.AddressList)
            {
                if (ip.AddressFamily == System.Net.Sockets.AddressFamily.InterNetwork)
                {
                    ipAddress = ip.ToString();
                    break;
                }
            }
            Fleck.WebSocketServer server = new Fleck.WebSocketServer("ws://" + ipAddress + ":80");


            server.Start(socket =>
            {
                logger.Info("FleckSocket=>server.start");
                socket.OnOpen = () =>
                {
                    logger.Info("FleckSocket=>server.open");
                    sockets.Add(socket);
                };
                socket.OnClose = () =>
                {
                    logger.Info("FleckSocket=>server.close");
                    sockets.Remove(socket);
                };
                socket.OnMessage = message =>
                {
                    logger.Info("FleckSocket=>server.message and the message is : "+message);
                    sockets.ToList().ForEach(s => s.Send(" client says: " + message));
                };

            });

Я также включил «веб-сокет» -> вкл. в общих настройках веб-приложения.

Спасибо

...