Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/299.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ssl/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
除非Fiddler正在为特定主机运行,否则C#Httpwebreqest不会生成响应_C#_Ssl_Encryption_Httpwebrequest_X509certificate - Fatal编程技术网

除非Fiddler正在为特定主机运行,否则C#Httpwebreqest不会生成响应

除非Fiddler正在为特定主机运行,否则C#Httpwebreqest不会生成响应,c#,ssl,encryption,httpwebrequest,x509certificate,C#,Ssl,Encryption,Httpwebrequest,X509certificate,实际上还有一个附加层,如果我在类的第一个请求中尝试访问该主机,它甚至在Fiddler运行时都无法工作。我现在有点困惑 下面的代码可以在Fiddler打开时完美工作: HttpWebRequest req = (HttpWebRequest)WebRequest.Create("https://www.ticketmaster.co.nz/member/order_history?start=10000"); req.AutomaticDecompression =

实际上还有一个附加层,如果我在类的第一个请求中尝试访问该主机,它甚至在Fiddler运行时都无法工作。我现在有点困惑

下面的代码可以在Fiddler打开时完美工作:

        HttpWebRequest req = (HttpWebRequest)WebRequest.Create("https://www.ticketmaster.co.nz/member/order_history?start=10000");
        req.AutomaticDecompression = DecompressionMethods.GZip | DecompressionMethods.Deflate;
        req.Headers.Add("Accept-Language: en-US,en;q=0.8");
        req.Headers.Add("Upgrade-Insecure-Requests: 1");
        req.Headers.Add("Accept-Encoding: gzip, deflate, sdch, br");
        req.UserAgent = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.75 Safari/537.36";
        req.Accept = "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8";
        using (HttpWebResponse resp = (HttpWebResponse)req.GetResponse())
        {
        }
        req = (HttpWebRequest)WebRequest.Create("https://www.ticketmaster.com/member/addfavs?tm_link=tm_homeA_mytm_signin");
        req.AutomaticDecompression = DecompressionMethods.GZip | DecompressionMethods.Deflate;
        req.Headers.Add("Accept-Language: en-US,en;q=0.8");
        req.Headers.Add("Upgrade-Insecure-Requests: 1");
        req.Headers.Add("Accept-Encoding: gzip, deflate, sdch, br");
        req.UserAgent = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.75 Safari/537.36";
        req.Accept = "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8";
        using (HttpWebResponse resp = (HttpWebResponse)req.GetResponse())
        {
        }
但是,如果关闭Fiddler并在Visual Studio中以调试模式运行,则会收到以下消息:

基础连接已关闭:接收时发生意外错误

以及以下内部异常:

无法从传输连接读取数据:主机中的软件中止了已建立的连接

主机中的软件中止了已建立的连接

现在,如果我只是运行下面的代码,我就可以

操作已超时

即使我打开了小提琴

        HttpWebRequest req = (HttpWebRequest)WebRequest.Create("https://www.ticketmaster.com/member/addfavs?tm_link=tm_homeA_mytm_signin");
        req.AutomaticDecompression = DecompressionMethods.GZip | DecompressionMethods.Deflate;
        req.Headers.Add("Accept-Language: en-US,en;q=0.8");
        req.Headers.Add("Upgrade-Insecure-Requests: 1");
        req.Headers.Add("Accept-Encoding: gzip, deflate, sdch, br");
        req.UserAgent = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.75 Safari/537.36";
        req.Accept = "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8";
        using (HttpWebResponse resp = (HttpWebResponse)req.GetResponse())
        {
        }
有人能理解这一点吗?我猜这和我的电脑和ticketmaster.com之间的加密有关吧?在第一个代码块上使用Fiddler时,我从隧道中获得以下信息:

新西兰ticketmaster.co.nz

加密的HTTPS流量通过此连接隧道。在Fiddler中启用了HTTPS解密,因此在此隧道中运行的解密会话将显示在Web会话列表中。安全协议:Tls12密码:Aes256 256位散列算法:Sha384位密钥交换:ECDHE_RSA(0xae06)256位==服务器证书====================[Subject]CN=www.ticketmaster.com.au,OU=Web系统,O=ticketmaster LLC,L=West Hollywood,S=California,C=US[Issuer]CN=GeoTrust SSL CA-G3,O=GeoTrust Inc.,C=US[序列号]1037AE6FF18FC34C953E39A6DFAB61B5[不在2016年5月31日下午8:00:00之前[不在2017年7月31日下午7:59:59之后]指纹FC3B52348FE320B9CAF441E98A8D7BFE1D7D3189[主题名称]www.ticketmaster.co.nz,ticketmaster.co.nz,ticketmaster.com.au,www.ticketmaster.com.au

ticketmaster.com

加密的HTTPS流量通过此连接隧道。在Fiddler中启用了HTTPS解密,因此在此隧道中运行的解密会话将显示在Web会话列表中。安全协议:Tls12密码:Aes256 256位散列算法:Sha384位密钥交换:ECDHE_RSA(0xae06)256位==服务器证书====================[Subject]CN=www.ticketmaster.com,OU=Web系统,O=ticketmaster,L=West Hollywood,S=California,C=US[Issuer]CN=Symantec Class 3安全服务器CA-G4,OU=Symantec信任网络,O=Symantec Corporation,C=US[序列号]009C483B9154EE1160A8FEC2044DC8C5[不得在2016年8月2日8:00:00下午[不得在2017年8月3日7:59:59下午[指纹]488B2EE898E409444F61B1DD97023D4EE615C2EF[主题名称]www.ticketmaster.com,ticketmaster.com


顺便说一下,我正在使用.NET版本4.6.1。

您使用的是哪个版本的.NET。NET 4和早期版本仅支持TLS 1-我想知道Fiddler是否可能从您的程序接受TLS 1连接,然后使用TLS 1.2将请求转发给TicketMaster?这可能是特定于环境的问题,与代码无关(即防火墙、代理等)-如图所示的代码工作正常。我建议尝试其他网站(从非HTTPS开始)来缩小问题的范围。@Jon Davies将其添加到问题4.6.1版@Alexei Levenkov你真的在自己的机器上运行代码成功了吗?我最近更换了机器,所以我想可能是这样,但我只是尝试了我用来构建应用程序的机器,但它在那里也不起作用。我可以通过chrome浏览器访问ticketmaster.com。然而,如果我去或ticketmaster.co.nz似乎工作正常,ticketmaster.com在这两个网站上也会失败