Manickam Chidhambaram
Manickam Chidhambaram

Reputation: 291

"Error: cs0016 could not write to output file ... access is denied"

How can I fix the following error?

error: cs0016 could not write to output file...c:\Windows\Microsoft.NET\Framework64\v4.0.30319\Temporary ASP.NET Files\sitename\6c57f9d2\bb09b49d\App_global.asax.5odzsyz5.dll' access is denied

Upvotes: 21

Views: 57927

Answers (11)

epakhost
epakhost

Reputation: 11

Just just need to set permissions for "Temp" folder.

  1. Go to "C:\Windows\Temp"
  2. Right click on it, and go to security.
  3. Set permission for [IIS_IUSRS] user to Full control
  4. Press OK

All done.

Upvotes: 1

Martin
Martin

Reputation: 71

I tried all the options here without any luck. What worked for me was to simply remove the application pool and recreate it.

No need for extra permissions on any folder.

Upvotes: 1

Dhaval Patel
Dhaval Patel

Reputation: 1

I Had tried like give the permissions and change in IIS regarding the identity but I was getting same error.

I just keep the following files underneath the path "C:\Windows\Microsoft.NET\Framework\v4.0.30319" and problem is gone.

  1. give the full control permission to recent folder.
  2. cvtres.exe (XML configuration File)
  3. cvtres (application).

Upvotes: 0

Mansoor
Mansoor

Reputation: 133

enter image description here Go C:\Windows\Temp Right Click on Temp Folder > go To Security Click on Edit Add New User [IIS_IUSRS] AND GIVE IT FULL PERMISSION. Then Press Ok,

Upvotes: 1

Ted
Ted

Reputation: 4067

For Windows 7 Set Full Control Permissions on folder C:\Windows\Temp for user IIS_IUSRS

Network Service user usually only applies on servers

Upvotes: 4

elifekiz
elifekiz

Reputation: 1506

I have all permissions about writing and reading but I'm starting to get that error.

I can suggest "restart machine" At least, it works for me

Upvotes: -1

leshy84
leshy84

Reputation: 700

I had the same problem. Found an easy way to resolve: Set "Load user profile" to true in app pool's advanced settings.

Upvotes: 13

user2502767
user2502767

Reputation: 328

I found the accepted answer on this post to be correct in process. I tried "NetworkService" and it did not work. However "LocalSystem" did!

Upvotes: 3

Jako
Jako

Reputation: 2577

I've fixed this issue setting full control for 'NETWORK SERVICE' to the system temp:

C:\Windows\temp

The error message reported by the web server is a bit misleading. Hope this helps.

Upvotes: 19

user2118400
user2118400

Reputation: 486

After spending hours on this issue myself below is the solution that worked for me on Windows 7 running IIS 7.5:

The application pool identity associated with the site was not a member of the IIS_IUSRS group. To add the app pool identity to the group I used the following steps:

  1. From the start menu select Run… enter lusrmgr.msc and click OK.
  2. Select Groups.
  3. Double click the IIS_IUSRS group.
  4. Click the Add... button.
  5. Click the Locations... button.
  6. Select your computer name (it should be at the top of the list) and click OK.
  7. In the text box below "Enter the object names to select" enter: iis apppool\<app pool identity> e.g. iis apppool\dev
  8. Click the Check Names button. If a Name Not Found dialog box appears then verify that the app pool identity entered matches the app pool identity associated with the site. If a dialog box did not appear then click OK.

Repeat steps 7 through 8 for each app pool identity you wish to add. Click OK.

Now the app pool identity is a member of the IIS_IUSRS group which should already have access to the Temporary ASP.NET Files directory. After all that I was still receiving the error and I found (thanks to process monitor) it was because the app pool identity could not write to the windows temp directory. To resolve this I added the IIS_IUSRS group to the windows temp directory with read/write permissions.

  1. From the start menu select Run… enter %windir% and click OK.
  2. Right click on the Temp directory and select Properties.
  3. Click on the Security tab.
  4. Click the Edit... button.
  5. Click the Add.. button.
  6. Click the Locations... button.
  7. Select your computer name (it should be at the top of the list) and click OK.
  8. In the text box below "Enter the object names to select" enter: iis_iusrs
  9. Click the Check Names button. If a Name Not Found dialog box appears then check for typos. If a dialog box did not appear then click OK.
  10. Select the added IIS_IUSRS group and in the Permissions for Everyone box below select: Allow Read and Allow Write
  11. Click OK. A dialog box will be displayed stating that "You are about to change the permission settings on system folders, which can result in unexpected access problems and reduce security. Do you want to continue?"
  12. Click Yes
  13. Click OK

Upvotes: 35

niltoid
niltoid

Reputation: 839

I was struggling with this problem for a while. Found some solutions on the web that involved setting permissions on the "Temporary ASP.NET Files" directory in the error message. But even opening it up to "Everyone" didn't work.

Then eventually the following steps fixed it:

  1. Go to the IIS AppPool for this site
  2. Right-click the app pool and go to Advanced Settings
  3. Change Identity from "ApplicationPoolIdentity" to "NetworkService"

There may also be some other necessary steps, which I did while troubleshooting, but this is the key step. For some reason the App Pool Identity (such as IIS_APPPOOL\SiteName) isn't granted access when "Everyone" is. I'm sure someone else can shed some light on why this is the case... Hopefully this helps others resolve this frustrating issue.

Upvotes: 15

Related Questions