I have created a list item event receiver(ItemUpdated).

When a item is updated in a list(for which event handler is attached),my code updates other items (may be more than 1) in lists in subsites.

When I debug the event receiver,I see that the ItemUpdated is called many times even if I update a single item in a list to which event handler is attached.

The code is working fine but I am not sure why ItemUpdated is called multiple times,even if a single item is updated.

Any idea?

Update : I install the eventhandler using xml below:

<Elements xmlns="http://schemas.microsoft.com/sharepoint/">
  <Receivers ListUrl="Lists/NewIdeas">
  • 1
    are you sure that the other lists you are updating don't have similar event receivers acting on them to update the original list item?
    – Zork
    Commented Mar 28, 2012 at 12:55
  • Please provide more information on how you installed event handlers Commented Mar 29, 2012 at 5:09
  • @AmitKumawat, See my edit above
    – SP.NET
    Commented Mar 29, 2012 at 8:52
  • What is the scope of your feature that installs the event receiver (using above xml) Commented Apr 2, 2012 at 8:35
  • The scope is at 'Site' level
    – SP.NET
    Commented Apr 2, 2012 at 8:41

2 Answers 2


I think the problem is in the way you installed the event receiver.

"ListUrl" works only if feature has Scope=”Web”. In case the feature has Scope=”Site”, event receiver is fired for every list, ListUrl is ignored. Check this for more details : http://extreme-sharepoint.com/2011/12/27/event-receivers-sharepoint-2010/

So, in your case the event receiver is attached to every list and hence the problem.

The solution is to change the scope from "Site" to "Web". Remember to disable and uninstall the current feature first.

  • Thanks for the answer! I have installed the feature with scope="Web" and now it is firing only for the list mentioned in url.
    – SP.NET
    Commented Apr 2, 2012 at 11:22
  • I'd always recommend that you compare the event method "properties" variable for (properties.ListTitle.ToLower() != "your list name") to ensure that you simply ignore the handler in the event that you have misconfigured your feature. Commented Apr 3, 2012 at 14:39

If I understand correctly your event receiver updates item in the list that has the same event receiver. Thus your receiver updates item, item is updated, receiver is called, receiver update item, item is updated.... and so on... To solve this issue you can disable event firing in your receiver by this code:

public static void SystemUpdate(this SPListItem item, bool incrementListItemVersion, bool doNotFireEvents)
    SPItemEventReceiverHandling rh = new SPItemEventReceiverHandling();
    if (doNotFireEvents)

internal class SPItemEventReceiverHandling : SPItemEventReceiver
    public new void DisableEventFiring()

    public new void EnableEventFiring()

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.