2016-06-01 14 views
0

だから我々は、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 
     } 
    } 
} 
の主要部分であります
+0

この質問は、次の情報を追加することで改善できます。 3台のコンピュータが同じネットワークセグメントにありますか? マシン#1はソリューションを開発した場所ですか? マシン#1はサーバーですか? 同じWebアプリケーションにアクセスするために異なるゾーン(URL)を使用していますか? 各ユーザーにはどのような権限がありますか? WSP(ファームまたはサンドボックス)をどのように展開しましたか? コードの一部を共有すると便利です。 –

+1

ありがとう、上記も追加されました。すべてのマシンは同じネットワーク上にあります。マシンの中にはサーバーはなく、さまざまなパーソナルラップトップがあります。開発は別のマシンで行われました。すべて同じURLでアクセスしています。すべてのユーザーが同じアクセス権を持ちます。これは現在、テストサイトにあり、移行/アップグレードが行われた後は本番環境に切り替わります。 現在の.WSP配備以前は同じ問題が発生していましたが、逆でしたが、マシン#2はすべての更新を行いましたが、マシン#1と#3は更新できませんでした。私たちが考えることができるのは、これらのマシンが導入後に最初にイベントを引き起こしたということだけでした。 – MTCLMBR

答えて

0

問題を解明しました。私は上記のファイルコードでそれらを含めなかった。しかし、サーバー上のテキストファイルをStreamWritingして、デバッグに役立てました。問題は、ユーザー1が自分のマシンにログオンし、ログファイルが存在しなかったときに生成されるということでした。他のユーザーがこれらのファイルへの読み取り/書き込みアクセス権を持っていないので、他のユーザーのデバッグファイルでエラーが発生しました。しかし、Windowsユーザーは、ファイルの所有者であるため、望みどおりに実行することができます。/

+0

非常に良いですが、問題の詳細を追加することが問題の特定に役立つことを願っています。既知の情報をすべて書き留めて解析と研究を容易にすることは、常に良いことです。ログファイルに関して、シェアポイントロギングシステムを使用しようとすると、いくつかの例があります: https://bipinpankhania.wordpress.com/2015/06/25/write-to-uls-logs-programmatically-in-sharepoint-2013sharepoint- 2010-on-premise/ https://blog.mastykarz.nl/logging-uls-sharepoint-2010/ ところで、私のコメントが役に立ちましたら、左側の上向き矢印をクリックしてくださいコメントの上にポインタを置くと表示されます) –

0

ハードコードされたパス/ URLである可能性がありますが、問題を特定するのに十分な情報がないため、私の回答をもっと更新してうれしいですより詳細な情報を提供している場合や、コードの一部を共有している場合は詳細な理論。

関連する問題