Anders Branderud
Anders Branderud

Reputation: 1918

Could not load file or assembly, because of 'Access is denied' (identity: NETWORK SERVICE)

I get the following error when a project is loading. Application pool identity is set to 'NETWORK SERVICE'. 'NETWORK SERVICE' has full access as 'Security permission' for the ASP.NET TEMP-directory referred to below. What should I do to solve the following problem?

 Could not load file or assembly 'EPi247.Selvbetjening.Templates' or one of its dependencies. Access is denied.
Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.

Exception Details: System.IO.FileLoadException: Could not load file or assembly 'EPi247.Selvbetjening.Templates' or one of its dependencies. Access is denied.
Source Error:

An unhandled exception was generated during the execution of the current web request. Information regarding the origin and location of the exception can be identified using the exception stack trace below.

Assembly Load Trace: The following information can be helpful to determine why the assembly 'EPi247.Selvbetjening.Templates' could not be loaded.


Assembly manager loaded from:  C:\Windows\Microsoft.NET\Framework64\v4.0.30319\clr.dll
Running under executable  c:\windows\system32\inetsrv\w3wp.exe
--- A detailed error log follows. 

=== Pre-bind state information ===
LOG: User = NT AUTHORITY\NETWORK SERVICE
LOG: DisplayName = EPi247.Selvbetjening.Templates
 (Partial)
WRN: Partial binding information was supplied for an assembly:
WRN: Assembly Name: EPi247.Selvbetjening.Templates | Domain ID: 3
WRN: A partial bind occurs when only part of the assembly display name is provided.
WRN: This might result in the binder loading an incorrect assembly.
WRN: It is recommended to provide a fully specified textual identity for the assembly,
WRN: that consists of the simple name, version, culture, and public key token.
WRN: See whitepaper http://go.microsoft.com/fwlink/?LinkId=109270 for more information and common solutions to this issue.
LOG: Appbase = file:///C:/repo/projects/OppdalCMS6R2Empty/
LOG: Initial PrivatePath = C:\repo\projects\OppdalCMS6R2Empty\bin
Calling assembly : (Unknown).
===
LOG: This bind starts in default load context.
LOG: Using application configuration file: C:\repo\projects\OppdalCMS6R2Empty\web.config
LOG: Using host configuration file: C:\Windows\Microsoft.NET\Framework64\v4.0.30319\aspnet.config
LOG: Using machine configuration file from C:\Windows\Microsoft.NET\Framework64\v4.0.30319\config\machine.config.
LOG: Policy not being applied to reference at this time (private, custom, partial, or location-based assembly bind).
LOG: Attempting download of new URL file:///C:/Windows/Microsoft.NET/Framework64/v4.0.30319/Temporary ASP.NET Files/root/1725e370/13a5a0c6/EPi247.Selvbetjening.Templates.DLL.
LOG: Attempting download of new URL file:///C:/Windows/Microsoft.NET/Framework64/v4.0.30319/Temporary ASP.NET Files/root/1725e370/13a5a0c6/EPi247.Selvbetjening.Templates/EPi247.Selvbetjening.Templates.DLL.
LOG: Attempting download of new URL file:///C:/repo/projects/OppdalCMS6R2Empty/bin/EPi247.Selvbetjening.Templates.DLL.
ERR: Failed to complete setup of assembly (hr = 0x80070005). Probing terminated.

Upvotes: 3

Views: 2787

Answers (1)

Alexei Levenkov
Alexei Levenkov

Reputation: 100620

If you site uses impersonation the load may be happening under user's account (instead of AppPool process' account). You can confirm it by checking Environment.UserName at the moment of exception.

If this is the case you need to make sure code that trigger loading of the assembly runs under process account (same goes for all other operations that require file system access).

Upvotes: 1

Related Questions