因此,由于2007年到2010年的迁移/更新,我们已经为SharePoint 2010创建了WSP的更新版本。
WSP是ItemAdded()的事件处理程序/接收器,我们让它按预期工作。问题是,该操作似乎只适用于一台计算机/机器,而不适用于其他计算机/机器。
当项目添加到列表中时,WSP会在共享文档库中创建文件夹,创建wiki页面,然后使用指向共享文档和wiki的链接更新新的列表项目。
当由机器#1和用户#1触发时,当机器#2(M2)和用户#2(U2)或M3和U3创建新项目时,所有操作都有效。
用户#2可以登录M1并创建一个新项目,所有操作都有效。但如果U1使用M2或M3创建项目,则不会触发事件。机器#1可以根据需要多次触发事件,但其他计算机无法触发。
如果您能够理解,是因为本地计算机或SP服务器上的代码或某种缓存设置,还是其他原因?感谢任何帮助。
更新:
所有机器都在同一网络上。这些机器不是服务器,而是各种个人笔记本电脑。开发是在单独的机器上完成的。所有人都通过相同的URL访问。所有用户都具有相同的访问权限。这是我们目前的测试站点,一旦迁移/升级完成,该站点将转换为生产站点。
在当前.WSP部署之前,我们注意到了相同的问题,但情况正好相反,机器#2执行了所有更新,但机器#1和#3无法执行。我们唯一能想到的是,这些机器是部署后第一个触发事件的机器。
I'm Not doing the .WSP install but our IT guy is(won't let us have access :/ but I understand) but below is the install commands he is running.
添加SPSolution-LiteralPath“OurPath/ourFile.wsp”
安装SPSolution-Identity ourIdentity-WebApplication
http://myhost.com/
-GAC部署
下面是代码的主要部分
public class CreateWikiAndFolder : Microsoft.SharePoint.SPItemEventReceiver
{
public override void ItemAdded(SPItemEventProperties properties)
{
try
{
//this.DisableEventFiring();
base.EventFiringEnabled = false;
string sUrlOfWikiPage = string.Empty;
string sUrlOfNewFolder = string.Empty;
string sSubsiteRUL = string.Empty;
string sCurrentItemTitle = properties.ListItem["Title"].ToString();
string sWikiListName = "TR Wikis";
string sDocLibName = "Shared Documents";
string sTRListID = "TR Status";
if (sTRListID.ToUpper().Equals(properties.ListTitle.ToString().ToUpper()))
{
//Create the Folder
sUrlOfNewFolder = CreateFolder(properties.ListItem.Web, sDocLibName, sCurrentItemTitle);
//Create the Wiki
string ItemDispFormUrl = String.Concat(properties.ListItem.Web.Url, "/", properties.ListItem.ParentList.Forms[PAGETYPE.PAGE_DISPLAYFORM].Url, "?ID=", properties.ListItem.ID.ToString());
sUrlOfWikiPage = CreateWiki(properties.ListItem.Web, sWikiListName, sCurrentItemTitle, ItemDispFormUrl, sUrlOfNewFolder);
//Update the current TR Item
SPWeb myWeb = properties.ListItem.Web;
myWeb.AllowUnsafeUpdates = true;
SPListItem myListItem = properties.ListItem;
SPFieldUrlValue shareFolderURLValue = new SPFieldUrlValue();
shareFolderURLValue.Description = "Shared Folder";
shareFolderURLValue.Url = sUrlOfNewFolder ;
myListItem["SharedFolder"] = shareFolderURLValue;
myListItem.Update();
myWeb.AllowUnsafeUpdates = false;
}
base.EventFiringEnabled = true;
}
catch (Exception e)
{
//Currently throwing nothing
}
}
}