Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/dart/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用Sharepoint Server对象模型测试Sharepoint解决方案_Sharepoint - Fatal编程技术网

使用Sharepoint Server对象模型测试Sharepoint解决方案

使用Sharepoint Server对象模型测试Sharepoint解决方案,sharepoint,Sharepoint,我需要测试我的企业创建的sharepoint解决方案。我已经创建了一个简单的exe,可以在实际的sharepoint服务器上运行 我正在尝试找出如何使用Sharepoint Server OM进行测试。在这一点上,我所要做的只是向库中添加一个项 我的第一个解决方案是这样的: SPSite site = SPContext.Current.Site; SPWeb web = site.OpenWeb(); etc... SPSite site = new SPSite(url); SPWeb w

我需要测试我的企业创建的sharepoint解决方案。我已经创建了一个简单的exe,可以在实际的sharepoint服务器上运行

我正在尝试找出如何使用Sharepoint Server OM进行测试。在这一点上,我所要做的只是向库中添加一个项

我的第一个解决方案是这样的:

SPSite site = SPContext.Current.Site;
SPWeb web = site.OpenWeb();
etc...
SPSite site = new SPSite(url);
SPWeb web = site.OpenWeb();
SPList list = web.Lists[listName];
SPListItem item = list.AddItem();
item["Title"] = "Some Title";
item.Update();
这里的问题是SPCOntext.Current.Site始终为空

我的下一次尝试是这样的:

SPSite site = SPContext.Current.Site;
SPWeb web = site.OpenWeb();
etc...
SPSite site = new SPSite(url);
SPWeb web = site.OpenWeb();
SPList list = web.Lists[listName];
SPListItem item = list.AddItem();
item["Title"] = "Some Title";
item.Update();
这运行时没有任何错误,但是当我检查有问题的列表时,我添加的项目不在那里


有人能帮我指出哪里出了问题吗?

试试下面的代码:

using(SPSite site = new SPSite(url))
using(SPWeb web = site.OpenWeb())
{
    SPList list = web.Lists[listName];
    SPListItem item = list.AddItem();
    item["Title"] = "Some Title";

    web.AllowUnsafeUpdates = true;
    item.Update();
    list.Update();
    web.AllowUnsafeUpdates = false;
}

您可能不需要AllowUnsafeUpdates(现在不记得了),但我几乎肯定您也必须更新列表。

非常有效。非常感谢!我确实需要包括AllowUnsafeUpdate。原因是什么?我是否可以以某种方式将用户名和pwd附加到它以避免出现这种情况?必须考虑这样一个事实,即您调用构造函数而不是从SPContext获取对象。顺便说一句,SPContext为null,因为您在HTTP请求的上下文之外使用它。SPContext是HTTPContext的SharePoint版本。此外,我还更新了我的原始代码块,以包括使用语句来确保正确的对象处理。AllowUnsafeUpdates允许您在HTTP请求的上下文中更新未经过表单摘要检查的内容。例如,在web部件的显示上,而不是在回复时。对于没有HTTP上下文的控制台类型应用程序,您不需要它(这与SPContext无法工作的原因相同)。Ryan你读过那篇文章吗?甚至那篇文章也指出,在创建自己的版本时,您可能需要允许WunsafeUpdates。是的,它应该为null,但在实例化对象时并不总是这样。我回去看了一些旧代码,不管它是不是一个bug,如果没有AllowUnsafeUpdates,它有时是不会工作的。