ranio Ответов: 0

Как связать веб-сокет с протоколом https в ASP.NET с помощью C#?


У меня возникла проблема при попытке подключиться через веб-сокет к url-адресу с протоколом wss. Размещенный url - адрес с http отлично работает, когда я пытаюсь потреблять от клиента с протоколом ws. Но с https я получаю ниже исключение. Я создал самозаверяющий сертификат в IIS и смог запустить сервер. Но при попытке подключиться я получаю ниже исключение.


Исключение составляет как показано ниже:
The underlying connection was closed: Could not establish trust relationship for the SSL/TLS secure channel. ---> System.Security.Authentication.AuthenticationException: The remote certificate is invalid according to the validation procedure.


Что я уже пробовал:

Основной код выглядит следующим образом:
Сервер
HttpListener httpListener = new HttpListener();
               httpListener.Prefixes.Add(httpListenerPrefix);
               httpListener.Start();

Клиент
public async Task Connect(string uri)
     {




         //NeSTCommonClass.WriteTextFile(LogPath + Logfilename, "Client:Handshake Connectivity  Process Sending  Starts", true);
         Thread.Sleep(1000); //wait for a sec, so server starts and ready to accept connection..

         // ClientWebSocket webSocket = null;
         try
         {
             webSocket = new ClientWebSocket();
             await webSocket.ConnectAsync(new Uri(uri), CancellationToken.None);
            //NeSTCommonClass.WriteTextFile(LogPath + Logfilename, "Client:Handshake Connectivity  Process Sending  Ends", true);
             //await Task.WhenAll(Receive(webSocket));



         }
         catch (Exception ex)
         {


             txtError.Text += "Client:HandShake Connectivity Process Failed: "+ ex.Message.ToString()+" "+ MethodInfo.GetCurrentMethod().Name  + Environment.NewLine;
             txtError.Text += "Client:HandShake Connectivity Process Failed: " + ex.InnerException.ToString() + " " + MethodInfo.GetCurrentMethod().Name + Environment.NewLine;
             txtError.Text += "Client:HandShake Connectivity Process Failed: " + ex.StackTrace.ToString() + " " + MethodInfo.GetCurrentMethod().Name + Environment.NewLine;
             //NeSTCommonClass.WriteTextFile(LogPath + Logfilename, "Client:HandShake Connectivity Process Failed: " + ex.Message.ToString() + "", true);


         }
         finally
         {
             if (webSocket != null)
                 webSocket.Dispose();
             //Console.WriteLine();
             //Console.WriteLine("WebSocket closed.");
         }
        // NeSTCommonClass.WriteTextFile(LogPath + Logfilename, "Client:Handshake Connectivity  Process Sending from Client Level Process Ends", true);
     }

Jochen Arndt

Введите "удаленный сертификат недействителен в соответствии с процедурой проверки" в поле ввода вашей любимой поисковой системы.

Кроме того, почему вы удалили свой предыдущий вопрос?
Было ли это решено моим комментарием?

0 Ответов