【问题标题】:Sending Client Certificate though HttpWebRequest, intermittenly working通过 HttpWebRequest 发送客户端证书,间歇性工作
【发布时间】:2011-04-22 14:19:17
【问题描述】:

我创建了一个 Web 应用程序,它调用需要客户端证书进行身份验证的 Web 服务。这是我如何构建请求的 sn-p:

            // Grab Certificate
            X509Certificate2 cert2 = new X509Certificate2(AppDomain.CurrentDomain.BaseDirectory + GiftCardConfig.A2A_CertificateLocation, GiftCardConfig.A2A_CertificatePassword, X509KeyStorageFlags.MachineKeySet);

            // First Call Status Account
            StringBuilder urlStatus = new StringBuilder(GiftCardConfig.A2A_URL + "webservice.asp?");
            urlStatus.Append("userid=" + GiftCardConfig.A2A_UserID);
            urlStatus.Append("&pwd=" + GiftCardConfig.A2A_Password);
            urlStatus.Append("&sourceid=" + GiftCardConfig.A2A_SourceID);
            urlStatus.Append("&cardnum=" + cardNumber);
            urlStatus.Append("&purseno=" + GiftCardConfig.A2A_PurseID);

            urlStatus.Append("&status=ACTIVATE");

            // Build HTTP Request
            HttpWebRequest wrStatus = (HttpWebRequest)WebRequest.Create(urlStatus.ToString());
            wrStatus.KeepAlive = true;
            wrStatus.Method = "GET";
            wrStatus.Accept = "text/xml";
            wrStatus.UserAgent = "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.2; Trident/4.0; .NET CLR 1.1.4322; .NET CLR 1.0.3705; .NET CLR 2.0.50727; .NET CLR 3.0.04506.30; .NET CLR 3.0.04506.648; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729; .NET4.0C; .NET4.0E)";
            wrStatus.ClientCertificates.Clear();
            wrStatus.ClientCertificates.Add(cert2);

这一切都有效,但只是间歇性的。托管 Web 服务的服务器大约每 24 小时返回一个 403:Forbidden 错误。修复它的唯一方法是对运行 Web 应用程序的服务器执行 iisreset。我们完全被这个问题难住了,想知道这个问题是否与 Web 应用程序或托管它的服务器的配置有关。

非常感谢任何可能的解决方案或 cmets!

【问题讨论】:

  • 嗨,拉里,您是否出于兴趣找到了解决方案?欢呼跳跳虎

标签: c# asp.net iis client certificate


【解决方案1】:

您可以尝试将 keep alive 设置为 false,尽管这可能会影响性能。

【讨论】:

    【解决方案2】:

    只是偶然有其他人遇到这个问题。我们从未确定原因,但在服务器上重新安装 .NET 框架似乎“解决”了问题。虽然不理想,但这是 5 年来的第一次,因此对我们目前的决议感到满意。

    【讨论】:

      猜你喜欢
      • 2018-09-05
      • 2011-07-03
      • 2012-11-10
      • 1970-01-01
      • 2015-09-06
      • 2016-06-17
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多