I'm a developer trying to set up a virtual directory for a WCF web service on a Windows Server 2003 (32 bit) machine and I keep on getting "Server Application Unavailable" with the following logged in the event log:

Message: Could not load file or assembly 'System.Web, Version=, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' or one of its dependencies. Access is denied.

So far I've tried:

  • Double checking the account used for anonymous access control (this is a local administrator)
  • Checking the permissions on the C:\Windows\Microsoft.Net\Framework directory (ASPNET has read / write access, I've even given Everyone access)
  • Disabling and enabling the ASP.Net v2.0 extension
  • Deleting and re-creating the .svc extension in the list of application extensions
  • Checking to make sure that System.Web is present in the GAC
  • Re-Installing the .Net framework 3.5 SP 1
  • Giving the virtual directory its own application pool
  • Fusion logging tells me nothing of interest

I cant figure it out - there is another .asmx web service that appears to work perfectly on the same web server with the same settings. What have I missed?

Are there any techniques that can be used to figure out these sorts of permissions issues? It would be useful to know the user account and path that its trying to access, but enabling the Failure events in the machines Audit Policy didnt seem to do anything.


Ugg my bad - this appears to be a dupe of https://serverfault.com/questions/63675/server-unavailable-and-removed-permissions-on-net-sites-after-windows-update. I checked the permissions on the directory that the service itself was contained within and all was well.

I also noticed that in the other question FileMon was used to see more detailed information on what / who was failing to access what.


Your most recent comment likely has the key. Filemon (or processmon) is your friend for a situation like this. If you haven't used it, it's safe to run on a production server, free, and easy enough to figure out. (just don't leave it capturing data too long)

The permission error you have is probably from something in the GAC since System.Web should be called from the GAC. The only exception is if the developer placed the System.Web.dll in the /bin folder. Permissions shouldn't be that locked down unless someone has really hardened the server. Process monitor should quickly tell you the answer.

To capture it, have Process Monitor queued up, start a capture, refresh the failed page, stop the capture, then search for the word 'denied'.


there is another .asmx web service that appears to work perfectly on the same web server with the same settings. What have I missed

Could it be that you're trying to run to different web sites on the same port and IP? Could you try changing the port of one of them, or shut down the other site?

Just a longshot.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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