January 2008 Entries

Well, guess what?

When you create an event handler on a list, and drop it into a solution package and deploy it, SharePoint will automatically take care of cycling the application pools as needed and putting the DLL in the GAC of the target of the solution (Web front end or All servers in the farm)... but what happens when you email enable this list?

Apparently which ever server is running the SMTP service will also need to have a local GAC'd version of the DLL, so do not limit your manifest.xml file to target only the webserver. 

Okay, now what?

Well things work fine, emails come in and fire the events as expected...  but when you try and make a change, and you want to upgrade your solution? 

Well here comes the problem, the application pools are reset and the DLL is updated with the change, however the DLL that is referenced by the list is not changed when sending an email into the list.  If you create a list item manually on the list, things show the update, but when the email comes in, still the old version. 

To save you some time:

Incoming emails, creates OWS Timer jobs, so the OWS Timer service gets its own saved copy of the DLL of the event handler and saves it.  So, restart that service and you will see the update to the incoming emials...  aggrivating for me, but at least I know why I was not seeing the change in the DLL. 

-Cheers