我正在尝试访问他们让我通过mmc安装本地证书的api我已经在我的本地Windows 7机器上这样做了所以我可以测试服务。我正在使用一个简单的winforms应用程序进行测试。我假设这是一个自签名的证书服务器端,所以我希望绕过异常以用于开发目的。
HttpWebRequest req = (HttpWebRequest)WebRequest.Create(postData);
req.Method = "POST";
req.ContentType = "application/x-www-form-uriencoded";
req.KeepAlive = true;
req.AllowAutoRedirect = false;
X509Store store = new X509Store(StoreName.Root,StoreLocation.LocalMachine);
store.Open(OpenFlags.ReadOnly);
X509Certificate cert = new X509Certificate();
for (int i = 0; i < store.Certificates.Count; i++)
{
if (store.Certificates[i].SerialNumber == "XXXX")
{
cert = store.Certificates[i];
}
}
req.ClientCertificates.Add(cert);
req.PreAuthenticate = true;
try
{
using (WebResponse resp = req.GetResponse())
{
Stream responseStream = resp.GetResponseStream();
using (StreamReader responseStreamReader = new
StreamReader(responseStream, new ASCIIEncoding()))
{
respString = responseStreamReader.ReadToEnd();
}
}
}
catch (Exception ex)
{
// there is a problem
}
我在try catch中遇到以下异常: 底层连接已关闭:无法为SSL / TLS安全通道建立信任关系。
我已经尝试过在stackoverflow上推荐的其他修补程序,例如抑制异常。
ServicePointManager.ServerCertificateValidationCallback = new
RemoteCertificateValidationCallback
(
委托{return true; }
);
我意识到这些问题中有很多类似于此,相信我,我已经通读了所有这些问题。感谢您提出的任何建议。
答案 0 :(得分:0)
嘿,以下最终为我修好了。我在浏览器中访问了api服务器地址,并将其证书导出到桌面上的文件中。然后我打开mmc并安装证书,如下面的链接:
http://support.esri.com/en/knowledgebase/techarticles/detail/38408
安装完成后,调用Web服务没有问题,异常消失了。