C # Чтение XML-файла из URL с HTTPS. (Хостинг с Godaddy) (Сертификат от ZerosSSL) - PullRequest
0 голосов
/ 17 января 2019

Поскольку мой сайт использует ssl-сертификат, я больше не могу получить доступ к xml-файлу с моего сервера. Пожалуйста, помогите мне.

У меня есть 4 файла со страницы ZeroSSL: счет-Key.txt; (RSA ЧАСТНЫЙ КЛЮЧ) домен-csr.txt; (CRT) (CABUNDLE) 2OmkvG1CfXtJ-sYpp5mV0 ......; (Файл без расширения) qGGRddmOl62soMPdlCBeamnR ......; (Файл без расширение)

URL теперь начинается с https, мой текущий код:

string currentVersion = GetWebPage("http://sofobot.com/version.xml");
XmlDocument VersionInfo = new XmlDocument();
VersionInfo.LoadXml(currentVersion);
.
.
public static string GetWebPage(string URL)
        {                        
            System.Net.HttpWebRequest Request = (HttpWebRequest)(WebRequest.Create(new Uri(URL)));           
            Request.Method = "GET";
            Request.MaximumAutomaticRedirections = 4;
            Request.MaximumResponseHeadersLength = 4;            
            Request.ContentLength = 0;          
            StreamReader ReadStream = null;
            HttpWebResponse Response = null;
            string ResponseText = string.Empty;                                                                
            Response = (HttpWebResponse)(Request.GetResponse());
            Stream ReceiveStream = Response.GetResponseStream();
            ReadStream = new StreamReader(ReceiveStream, System.Text.Encoding.UTF8);
            ResponseText = ReadStream.ReadToEnd();
            Response.Close();
            ReadStream.Close();           
            return ResponseText;
        }

enter image description here Ошибка InnerException -> stacktrace:

ru System.Net.Security.SslState.StartReadFrame (буфер Byte [], readBytes Int32, asyncProtocolRequest asyncRequest) ru System.Net.Security.SslState.StartReceiveBlob (буфер Byte [], AsyncProtocolRequest asyncRequest) ru System.Net.Security.SslState.CheckCompletionBeforeNextReceive (сообщение ProtocolToken, AsyncProtocolRequest asyncRequest) ru System.Net.Security.SslState.ForceAuthentication (логический буфер receiveFirst, Byte [], AsyncProtocolRequest asyncRequest) ru System.Net.Security.SslState.ProcessAuthentication (LazyAsyncResult lazyResult) ru System.Threading.ExecutionContext.RunInternal (ExecutionContext executeContext, обратный вызов ContextCallback, состояние объекта, логическое preserveSyncCtx) ru System.Threading.ExecutionContext.Run (ExecutionContext executeContext, обратный вызов ContextCallback, состояние объекта, логическое preserveSyncCtx) ru System.Threading.ExecutionContext.Run (ExecutionContext executeContext, обратный вызов ContextCallback, состояние объекта) ru System.Net.TlsStream.ProcessAuthentication (результат LazyAsyncResult) ru System.Net.TlsStream.Write (буфер Byte [], смещение Int32, размер Int32) ru System.Net.ConnectStream.WriteHeaders (логическая асинхронная)

Ответы [ 2 ]

0 голосов
/ 17 января 2019

Я нашел решение

Мне пришлось удалить файл .HTACCESS на моем сервере. Этот файл содержит этот код:

RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

URL-адрес удерживается в "http //"

0 голосов
/ 17 января 2019

Нет необходимости передавать информацию о вашем сертификате SSL.

Я бы подумал, что это может быть простое решение

string currentVersion = GetWebPage("http://sofobot.com/version.xml"); // https!

Вам нужно изменить протокол на HTTPS вместо использования HTTP

...