Failed to start monitoring changes on global.asax

2020-06-09 03:49发布

问题:

I am trying to use impersonation in a an asp.net 3.5 webservice. However whenever I try to run the service with Impersonation enabled (In web.config) I am receiving the following error in my Windows Event log:

Exception message: Failed to start monitoring changes to 'C:\1work\temp\NotificationWatcherWebServiceClean2010\NotificationWatcherWebService\NotificationWatcherWebService\global.asax'

I initially didn't even have a global.asax so I tried adding 1 and adding explicit permissions for the user I'm trying to impersonate.

I am using the following environment.
Visual Studio 2010
Windows 7 64-bit
.Net Framework 3.5

Any ideas?

回答1:

I've seen this issue each time I get a new box, or have mine reimaged. What I have to do is grant the account that is being impersonated (assuming it's a single account, otherwise you may need to grant a group of users) access to key folders.

Specifically C:\windows\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files but also you might try c:\windows\temp and your own user temp folder located at C:\Users\userid\AppData\Local\Temp.



回答2:

It seems this error is a result of the impersonated user account not being a member of the IIS_IUSRS group. Adding membership to this group in Control Panel / Administrative Tools / Computer Management / Local Users and Groups should help to resolve the problem.



回答3:

For development purposes, running Visual Studio as Admin might help.



回答4:

Please note if your folder is shared with some other user and inheriting parent permission then also, this issue arises.

We just have to remove that user (from the Security tab in the properties dialogue of the folder) and its parent permission mapping

Also,

  • make sure that Visual Studio is running in Admin mode
  • make sure that the folder in concern is not read only

  • make sure that Authenticated Users or ASPNET and (optionally) IIS_IUSRS have access to the concerned folder

  • clean the temp


回答5:

This is so bad. I can't believe I'm encountering this on VS 2017 (15.9.15).

I am doing file path / UNC path style publishing to our production server.

The fix for me was to simply remove the impersonation from my web.Release.config transform file

Get rid of this in your system.web element:

<identity impersonate="true"  userName="CONSOTO\my_serviceacct" password="pwd123456" xdt:Transform="Insert"/>

This allows publishing to proceed as normal, then, I obviously have to put the impersonation back into place on the target installation server.

Funny thing is, web config transformations work just fine with impersonation included.. if I right-click the Web.config and select "Publish Web.config". The impersonation bit only seems to break when I publish the entire web site.