SharePoint CSOM报错 The underlying connection was closed: An unexpected error occurred on a receive

在SharePoint  CSOM项目中在执行ExecuteQuery()时报错如下

The underlying connection was closed: An unexpected error occurred on a receive

详细内容为

at System.Net.HttpWebRequest.GetResponse()

at Microsoft.SharePoint.Client.SPWebRequestExecutor.Execute()

at Microsoft.SharePoint.Client.ClientContext.GetFormDigestInfoPrivate()

at Microsoft.SharePoint.Client.ClientContext.EnsureFormDigest()

at Microsoft.SharePoint.Client.ClientContext.ExecuteQuery()

源代码如下

string url = @"https://SPServer/mydomain.net/sites/059999";

            NetworkCredential nc = new NetworkCredential("lixm", "mypassword", "mydomain");
            ClientContext ctx = new ClientContext(url);
            ctx.Credentials = nc;
            Web web = ctx.Web;
            ctx.Load(web);
            ctx.ExecuteQuery(); //报错位置
            Console.WriteLine(web.Title);
            Console.ReadKey();
            Console.WriteLine("--");

原因分析,

因在CSOM调用时,会以客户端模型的方式调用服务器资源,在进行网络链接时使用网络协议TLS,如果不指定,将会报上述错误,可能在测试环境中上部分代码不会抛出异常,但在生产环境中严格的网络协议要求下会出现,所以在代码中指定连接的协议即可,代码如下

            System.Net.ServicePointManager.SecurityProtocol = System.Net.SecurityProtocolType.Tls11 | System.Net.SecurityProtocolType.Tls12;
//添加上付代码即可解决问题。

            string url = @"https://SPServer/mydomain.net/sites/059999";

            NetworkCredential nc = new NetworkCredential("lixm", "mypassword", "mydomain");
            ClientContext ctx = new ClientContext(url);
            ctx.Credentials = nc;
            Web web = ctx.Web;
            ctx.Load(web);
            ctx.ExecuteQuery(); //报错位置
            Console.WriteLine(web.Title);
            Console.ReadKey();
            Console.WriteLine("--");

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值