2017-07-02 4 views
1

時間が経っても、この問題に関するすべての質問を読むと、自分で投稿する以外に選択肢はありません。C#Mono - エラー:SecureChannelFailure - 一部のドメインでHTTPS要求が失敗する

Mono.Security.Protocol.Tls.TlsException: The authentication or decryption has failed. 

I:

例ほとんどで
string url = "https://www.google.fr"; 
var encoding = Encoding.GetEncoding("iso-8859-1"); 
using (WebClient client = new WebClient()) 
{ 
    string html = new StreamReader(client.OpenRead(url), encoding).ReadToEnd(); 
    Console.Write(html); 
} 

は、このプログラムは、例外が発生する一部のドメインを除いて、結果を返す: 私はURLからHTMLコードを返す、非常に単純なC#のコードを持っています他の問題からすべてを試しましたが、誰も私の問題を解決することはできません。私はすでに、このように上書きしようとしています:

ServicePointManager.ServerCertificateValidationCallback = delegate(object s, X509Certificate certificate, X509Chain chain, SslPolicyErrors sslPolicyErrors) { return true; }; 

問題がモノラルから来る、モノラルで動作しないドメインは、Windowsの10で正常に動作するため、 私はこの例外を回避するにはどうすればよいですか?

+0

可能な重複https://stackoverflow.com/questions/41827960/how-do-i-resolve-securechannelfailure-on-osx-with-mono ) – SushiHangover

+0

TLS 1.2のサポートはまだモノでは限られていると私は信じています。私は過去に同じ問題を抱えていて、MonoとURLの間にプロキシを置くことで回避しました(私はNode.jsに軽いWebプロキシを使用しましたが、他の人はちょっとしたことをやっていました)。最終的には、TLSを処理できるプロキシが必要で、モノから他のものにコールすることができます。 SSL。 – muszeo

答えて

0

解決策を検索した日数と日数の後に、エラーがMonoから来たので、私はトリックを使用しなければならないことを理解しました。

これは適切な方法ではなく、最も簡単です。

私は domain.com/myfile.phpでこれを含めるPHPファイルホスティングのための無料のドメインを使用:

<?php echo file_get_contents("url of the website"); ?> 

をそして、代わりに問題を引き起こしたURLを使用するのでは、私はC#でPHPファイルのリンクと交換。

string url = "domain.com/myfile.php"; 
using (WebClient client = new WebClient()) 
{ 
    string html = client.DownloadString(url); 
    lines = Regex.Split(html, @"\r?\n|\r"); 
    client.Dispose(); 
} 
([私はモノとOSX上SecureChannelFailureを解決するにはどうすればよい]の
関連する問題