Sharepoint客户端模型错误System.Net.WebException:远程服务器返回错误:(500)内部服务器错误

时间:2018-07-31 07:52:35

标签: c# .net sharepoint sharepoint-clientobject sharepoint-2016

我在使用SharePoint CSOM时遇到此错误“ System.Net.WebException:远程服务器返回错误:(500)内部服务器错误”。 当我在IIS上回收应用程序池时会发生这种情况,并且当我打开要从中获取数据的网站集时,此错误消失并且CSOM可以正常工作。

复制步骤:打开IIS->回收池->调用CSOM->错误500

工作步骤:打开IIS->回收池->导航到网站集->调用CSOM->成功返回数据

public static ClientContext OpenContext(string siteUrl, bool isUseAuthentication, string username, string password)
    {
        try
        {
            ClientContext context = new ClientContext(siteUrl);
            if (isUseAuthentication)
            {
                context.Credentials = new System.Net.NetworkCredential(username, password);
            }
            context.ExecutingWebRequest += clientContext_ExecutingWebRequest;                
            return context;
        }
        catch
        {
            throw;
        }
    }

    public static void clientContext_ExecutingWebRequest(object sender, WebRequestEventArgs e)
    {
        try
        {
            e.WebRequestExecutor.WebRequest.Headers.Add("X-FORMS_BASED_AUTH_ACCEPTED", "f");
        }
        catch
        { throw; }

    }

然后执行此代码

var context = SPClientObjectModelHelper.OpenContext(ConfigurationManager.AppSettings["SiteUrl"], Convert.ToBoolean(ConfigurationManager.AppSettings["IsUseSiteAuthentication"]), decryptedUsername, decryptedPassword);
            using (context)
            {
                // get list name
                string listName = "testList";
                // Assume the web has a list named "Announcements". 

                var web = context.Web;
                context.Load(web);
                context.ExecuteQuery();
             }

解决方案

我找到了解决方案,该站点的URL是http:\ testsite \ sites \ test,我通过http:\ 192.168.1.33 \ sites \ test对其进行了调用,所以当我将此IP放入SharePoint CA的备用访问映射中时,问题出了已解决:)

0 个答案:

没有答案