2011-11-11 12 views
0

Sharepointリストのイベント受信者をデバッグしようとしています。私はそれが停止しませんイベントレシーバにブレークポイントを配置する場合SharePoint 2010イベントハンドラ

//Add an event receiver to the list 
list.EventReceivers.Add(SPEventReceiverType.ItemAdded, "DatasEvent, Version = 1.0.0.0, Culture = neutral, PublicKeyToken = 6f4db1e1fedbed57", "DatasEvent.DatasEventReceiver"); 

public override void ItemAdded(SPItemEventProperties properties) 
{ 
    try 
    { 
     int itemIdSql; 
     SPListItem item = properties.ListItem; 
     ... 
    } 
    catch (SqlException ex) 
    { 
     Debug.WriteLine(ex.Message); 
    } 
} 

: これは私がやっている何のコードです。

答えて

0

まず、最新のアセンブリバージョンがGACに届くことを確認してください。最も簡単な方法は、プロジェクトのコンテキストメニューから[展開]オプションを使用するか、単にF5を押すことです。このコードが割り当てられている場合

その後、私たちに知らせてください

//リスト list.EventReceivers.Add(SPEventReceiverType.ItemAdded、「DatasEvent、バージョン= 1.0.0.0、文化=中立にイベントレシーバーを追加します。 、PublicKeyToken = 6f4db1e1fedbed57 "、" DatasEvent.DatasEventReceiver ");

フィーチャーレシーバーに配置されている場合は、ターゲットWebアプリケーションが対応するアプリケーションプールに対応するw3wp.exeにアタッチしようとする前にアクティブになっていることを確認してください。

2

ビジュアルスタジオに移動します。デバッグ - >プロセスのアタッチ - >利用可能なすべてのw3wp.exeをリストに添付します。次に、Webブラウザで機能を有効にしてみます。ブレークポイントを読み込んでヒットする必要があります。

1

個人的には、イベント受信者コードにSystem.diagnostic.debug.WriteLn()メッセージを追加し、サーバー上でDebugViewを使用して表示することをお勧めします。毎回ワーカープロセスにアタッチするのは面倒です。

0

私がしようとするだろう:

Debugger.Launch(); 

開発環境のみで、それ以外の場合は、すべての要求のためにデバッグしようとします。

イベントレシーバーを追加する前に入れておきます。

0

ItemAddedは、アイテムが追加された後に発生する非同期イベントを処理します。実行はタイマージョブによって実行されます(現在のワーカープロセスw3wpでは実行されません)。したがって、OWSTIMERプロセスに接続してデバッグする必要があります。

0

2つのweb.configファイルでsharepointのデバッグを有効にする必要があります。 Debugger.Launch()を使用してランタイムを停止する必要があります。 など。デプロイメントとアクティベーションイベントが発生すると(EventReceiverのコードにDebugger.Launch()コマンドがあります)、VSはコードのデバッグを要求します。

「アタッチする」を使用する必要はありませんが、別の方法でデバッグすることもできます。

this links helped me a lot

関連する問題