从IIS调用相同的HttpWebRequest是否会导致IIS Express中的证书错误?

时间:2019-05-09 21:36:11

标签: c# iis iis-express

我的IP地址已列入白名单,以便能够连接到我们工作网络上的服务器,因此我可以从一直为客户端更新的Webforms网站上连接到该服务器。我从该网站发出了一个HttpWebRequest,该网站连接到我的IP已被列入白名单的服务器,并且一切正常。现在,我想将SAME代码连接到正在使用的API,并且收到以下错误:

  

System.Net.WebException:'基础连接已关闭:无法为SSL / TLS安全通道建立信任关系。'

我正在通过IIS运行Webforms站点,并通过IIS Express运行API。配置上的差异是我的问题根源吗?

我正在从带有链接的javascript文件的本地(例如C:\ Myfile)HTML文件中调用API,因此它不在任何类型的项目(例如Webforms项目)中。我认为这也可能导致差异。

var nodeData = Encoding.ASCII.GetBytes("{\"path\": \"" + packageString.Trim() + "\"}");
var nodeRequest = (HttpWebRequest)WebRequest.Create("https://mytransfersite.org/ ");
var nodeAuthHeader = "Basic " + WebConfigurationManager.AppSettings["Auth"];

nodeRequest.Headers.Add(HttpRequestHeader.Authorization, nodeAuthHeader);
nodeRequest.ContentLength = nodeData.Length;
nodeRequest.Method = "POST";
nodeRequest.ContentType = "application/json";
nodeRequest.Accept = "application/json";
using (var stream = nodeRequest.GetRequestStream())
{
  stream.Write(nodeData, 0, nodeData.Length);
}

该错误发生在nodeRequest.GetStream()调用上。

1 个答案:

答案 0 :(得分:1)

我忘了我在第一行代码中添加了以下内容以使其正常工作:

System.Net.ServicePointManager.ServerCertificateValidationCallback = delegate { return true; };