だから我々は、WSPは、イベントハンドラ/レシーバである2007年から2010年SharePointのイベントレシーバ作品
に起因する当社の移行/更新にSharePoint 2010のためのWSPの更新されたバージョンを作成しましたItemAdded()のために、我々はそれが意図したとおりに働いている。問題は、その操作が1台のコンピュータ/マシンのみで動作するように見えることです。
アイテムがリストに追加されると、WSPは共有ドキュメントライブラリにフォルダを作成し、wikiページを作成し、新しいリストアイテムを共有ドキュメントおよびWikiへのリンクで更新します。
マシン#2とユーザー#2(U2)またはM3とU3が新しいアイテムを作成したときに、マシン#1とユーザー#1がすべての操作をトリガーすると、すべての操作が実行されます。
ユーザ#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.
のAdd-SPSolution -LiteralPath "OurPath/ourFile.wsp"
インストール-SPSolution -Identity ourIdentity -WebApplication http://myhost.com/ -GACDeployment以下
コード
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
}
}
}
の主要部分であります
この質問は、次の情報を追加することで改善できます。 3台のコンピュータが同じネットワークセグメントにありますか? マシン#1はソリューションを開発した場所ですか? マシン#1はサーバーですか? 同じWebアプリケーションにアクセスするために異なるゾーン(URL)を使用していますか? 各ユーザーにはどのような権限がありますか? WSP(ファームまたはサンドボックス)をどのように展開しましたか? コードの一部を共有すると便利です。 –
ありがとう、上記も追加されました。すべてのマシンは同じネットワーク上にあります。マシンの中にはサーバーはなく、さまざまなパーソナルラップトップがあります。開発は別のマシンで行われました。すべて同じURLでアクセスしています。すべてのユーザーが同じアクセス権を持ちます。これは現在、テストサイトにあり、移行/アップグレードが行われた後は本番環境に切り替わります。 現在の.WSP配備以前は同じ問題が発生していましたが、逆でしたが、マシン#2はすべての更新を行いましたが、マシン#1と#3は更新できませんでした。私たちが考えることができるのは、これらのマシンが導入後に最初にイベントを引き起こしたということだけでした。 – MTCLMBR