Frage

Ich habe nur 1 Visual Studio-Projekt.

es enthält 1 EventReCeiver (für DocumentLibrary) und Multiple-Webparts. Ich habe den Scope= Site von Feature.xml-Datei des Projekts definiert.

Ich habe 1 benutzerdefinierte Funktion in EventReCeiver erstellt, die auf jedem Ereignis raufend ist, feuert / update / löschen in meinem DocumentLibrary ab.

Wenn ich es mit dem Rechtsklick auf das Projekt bereiteiste, funktioniert alles in Ordnung, aber wenn ich eine Seite erstellen kann, und ein beliebiger Artikel wird in meine Customliste hinzugefügt, dann ist auch der EventReCeiver-FIRES.Obwohl es auf Documentlibrary erstellt wird. Es gibt mir keinen Fehler, aber ich möchte es nicht noch einmal anrufen.

Wenn ich jedoch das Projekt von F5 debugg, dann bekomme ich Fehler in EventReCehriver, da sie mehrmals auf jedem Ereignis genannt wird.

Wenn ich das EventReCeivers Scope= Web bereitstellen, kann es sein, dass es das Problem löst, aber ich muss die Webparts auch mit Scope= Site bereitstellen.

So löst dieses Problem durch ein einzelne Bereitstellung?

War es hilfreich?

Lösung

Sie können dem Projekt eine zweite Funktion hinzufügen.In diesem Fall verfügen Sie über ein Lösungsverpackung mit zwei Funktionen (zuerst ist eine Site-SCAPED-Funktion, zweitens ist eine Web-Scaped-Funktion).In einer Site-SCAPED-Funktion können Sie Ihre Webteile aufnehmen.Um dies zu tun, sollten Sie auf Funktionen Ordner klicken, und wählen Sie neue Feature-Option hinzufügen.

Andere Tipps

Ich vermute, Sie haben den Ereignisempfänger an die Dokumentenbibliotheksvorlage gebunden, die Ihre benutzerdefinierte Liste auch verwenden kann, daher ist der Ereignisempfänger an beide Listeninstanzen gebunden.

Wenn ich einen Ereignisempfänger in eine bestimmte Liste binden muss, tue ich dies im Code, normalerweise über Merkmalsaktivierung und CODD wie folgt: generasacodicetagpre.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit sharepoint.stackexchange
scroll top