C#Dynamics CRM Online“请求已中止:无法创建SSL / TLS安全通道。”

时间:2017-02-15 13:21:50

标签: c# dynamics-crm office365 crm dynamics-crm-online

这是来自Dynamics CRM Online上的CodeActivity的Web请求示例。

 public class CodeActivity1 : CodeActivity
{
    protected override void Execute(CodeActivityContext context)
    {

        var postUrl = "https://jsonplaceholder.typicode.com/posts/";
        var request = (HttpWebRequest)WebRequest.Create(postUrl);
        request.Method = "GET";
        request.ContentType = "application/xml";
        request.ContentLength = 0;

        HttpWebResponse webresponse = (HttpWebResponse)request.GetResponse();
        Encoding enc = System.Text.Encoding.GetEncoding("utf-8");
        StreamReader responseStream = new StreamReader(webresponse.GetResponseStream(), enc);

        var result = responseStream.ReadToEnd();
        webresponse.Close();
        .....

    }
...
}

我收到“请求已中止:无法创建SSL / TLS安全通道。”错误。从Microsoft文档(https://msdn.microsoft.com/en-us/library/gg334752.aspx)有以下限制:

  • 仅允许使用HTTP和HTTPS协议。
  • 不允许访问localhost(环回)。
  • 无法使用IP地址。您必须使用需要DNS名称解析的命名Web地址。
  • 支持并建议使用匿名身份验证。没有提示提示已登录用户提供凭据或保存这些凭据。

您是否有关于问题性质的建议或想法?

2 个答案:

答案 0 :(得分:0)

可能是您环境中的某些内容正在动态更改服务器证书。许多嗅探应用程序都可以做到(例如Fiddler)。换句话说,确保从httpbin.org获得的证书是正确的。您可以通过添加验证处理程序来检查问题是否在验证服务器证书,该处理程序将忽略代码开头的任何证书错误:

apt-get install php7.0-gd

答案 1 :(得分:0)

我重写了正确的脚本,希望它对某人有用。 感谢@pen的建议

SCM_PASSWORD=<password>