我在使用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的备用访问映射中时,问题出了已解决:)