I am running Windows 7, and am not usually a developer in this setting, and have recently built a WCF Rest Service in C#, that I'm now trying to deploy to IIS just on my local machine. After much wrangling, I setup up the application, but when I navigate to the application, I get an error message: Compilation Error
Description: An error occurred during the compilation of a resource required to service this request. Please review the following specific error details and modify your source code appropriately.
Compiler Error Message: CS0016: Could not write to output file 'c:\Windows\Microsoft.NET\Framework64\v4.0.30319\Temporary ASP.NET Files\scom_sibyll\8c0b945e\9329016\App_global.asax.eagmqgcd.dll' -- 'Access is denied. '
I have hunted the web to the best of my ability, and have changed the permissions on the Temporary ASP.NET Files fodler to allow the Network Service account full rights, and done the same with the Temp folder. It copies a number of files before failing, so it has write permissions presumably, so I checked the permissions to read from my source folder, and that is working as well. I additionally noted it's crapping out when it tries to to cache the DLL file, and tried turning off my Antivirus protection, as well as turning off UAC, just to see if I could figure out what is blocking this from occurring. I'm fresh out of ideas now. Anybody have any suggestions?
Some times the Temp files might be locked by other process in the workstation. As a first step please reboot the workstation and check the application.
On Windows 8/Server 2012 there is no support for aspnet_regiis any more. I tried reinstall using windows features: fail. I tried reinstalling IIS: fail. I tried reinstall through WebPI: fail.
I solved the issue by setting the ACL's on the Windows Temp Directory.
Here is a powershell that does the job:
For those looking here as I did, if the accepted answer doesn't resolve the issue you might try following this article: http://lordzoltan.blogspot.com/2011/02/aspnet-2-and-4-default-application-pool.html
In summary, it seems that the same error is sometimes displayed when the app pool user doesn't have access to the %TMP%/%TEMP% folder.
You'll need to grant IIS_IUSRS read and modify access over the temp folder of the user the app pool is running as.
This could either be the temp folder in the app pool user's profile, e.g.
c:\Windows\ServiceProfiles\NetworkService\AppData\Local\Temp
, or the system temp folder atc:\windows\temp
.Setting this up this resolved the issue for me.
I started getting this error too recently in a corporate environment after the company implemented various security measures that took away admin rights from the users.
For developers, the company authorized the creation of accounts that could be used and we had to add these to the PC's admin group and then change the application pool's identity to use the account.
EXAMPLE (Windows 10)
Account created for developers: domain\developer
Someone with admin rights to the PC will have to do the following:
Now configure the App Pool:
At this point I was able to close everything, restart IIS and then run my app. It could then access the temp folders it couldn't before.
I have permissions but I'm starting to get that error. "restart machine" works for me
I granted read and write access to C:\Windows\Temp for the IIS_WPG group. This worked for me. I'm on Server 2003 R2 and IIS 6 and the group name is different. I fount it from http://learn.iis.net/page.aspx/140/understanding-built-in-user-and-group-accounts-in-iis/ where it says:
•The IUSR built-in account replaces the IUSR_MachineName account.
•The IIS_IUSRS built-in group replaces the IIS_WPG group.
Thanks to Dommer for suggesting the windows temp folder and to zcrar70 for the nice summery and a link with detailed description.