Windows10Pro x64 + VS2017 + .NET Framework3.5で、以下のコードで例外出ない方、いらっしゃいますでしょうか。
あるいは、解決方法どなたかご存知でしょうか。
HttpWebRequest req = (HttpWebRequest)WebRequest.Create("https://www.tanabe-ind.co.jp/"); req.Timeout = 900000; using (HttpWebResponse res = (HttpWebResponse)req.GetResponse()) //ここで例外 { }
System.Net.WebException: '基礎になる接続が閉じられました: 送信時に、予期しないエラーが発生しました。' 内部例外: IOException: トランスポート ストリームから予期しない EOF または 0 バイトを受信しました。
ちなみに同じコードで.NET Framework4.0なら通ります。
また、上記以外の大抵のサイト(例えば https://www.google.co.jp/)も通ります。
上記サイトはie等ブラウザで普通に見れるところです。
Fiddlerで確認したリクエストヘッダは以下の通り。
ieのリクエストヘッダ
CONNECT www.tanabe-ind.co.jp:443 HTTP/1.0 User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; Trident/7.0; rv:11.0) like Gecko Content-Length: 0 Host: www.tanabe-ind.co.jp Connection: Keep-Alive Pragma: no-cache A SSLv3-compatible ClientHello handshake was found. Fiddler extracted the parameters below. Version: 3.3 (TLS/1.2) ~以下略~
上記コードでのヘッダ(.net3.5・4.0同じ)
CONNECT www.tanabe-ind.co.jp:443 HTTP/1.1 Host: www.tanabe-ind.co.jp Connection: Keep-Alive A SSLv3-compatible ClientHello handshake was found. Fiddler extracted the parameters below. Version: 3.1 (TLS/1.0) ~以下略~
色々調べて、事前に下記コードを入れたりもしましたが駄目でした。
TLS/1.2でも1.0でも、.net4.0なら通り、3.5なら例外です。
ServicePointManager.SecurityProtocol = SecurityProtocolType.Ssl3 | SecurityProtocolType.Tls | (SecurityProtocolType)0x00000C00 | (SecurityProtocolType)0x00000300;
あと、足りないヘッダを補おうと下記コードを入れても、送り先がhttpsだとヘッダに変化無いのはそういうものでしょうか。(.net3.5・4.0両方とも)
req.UserAgent = "Mozilla/5.0 (Windows NT 10.0; WOW64; Trident/7.0; rv:11.0) like Gecko"; req.ContentLength = 0; req.KeepAlive = true; req.Headers["TEST"] = "TEST";
.NET4系に移行してしまえば済む話なのですが、とりあえず解決はしておきたく、ここに書きました。どなたか情報ご存知でしたらお願いします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/07/31 06:18
2017/07/31 06:32