IIS에서 실행되는 ASP.NET 웹 사이트와 함께 AppDomains의 섀도 복사본 기능에 문제가 있습니다. 문제는 사용 권한이 충분하지 않기 때문에 섀도 복사 된 파일을 IIS 사용자가 읽거나 실행할 수 없다는 것입니다.
System.IO.FileLoadException : 파일 또는 어셈블리를로드 할 수 없습니다 'My.Namespace.AssemblyName, 버전 새로운 응용 프로그램 도메인의 코드가 (DoCallBack를 통해 콜백 메소드를 통해) 실행될 때IIS6에서 실행되는 ASP.NET 사이트에서 AppDomain 섀도 복사 된 파일 액세스가 거부되었습니다.
나는 다음과 같은 오류 메시지가 = 0.0.3.2231, 문화 = 중립, PublicKeyToken = null '또는 종속성 중 하나. 접근이 금지되어있다.
퓨전 로그 :
Assembly manager loaded from: C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\mscorwks.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 = My.Namespace.AssemblyName, Version=0.0.3.2231, Culture=neutral, PublicKeyToken=null (Fully-specified) LOG: Appbase = file:///C:/Inetpub/wwwroot/Web Suite/Widgets LOG: Initial PrivatePath = NULL Calling assembly : (Unknown). === LOG: This bind starts in default load context. LOG: No application configuration file found. LOG: Using host configuration file: \\?\C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\aspnet.config LOG: Using machine configuration file from C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\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:/Inetpub/wwwroot/Web Suite/Widgets/My.Namespace.AssemblyName.DLL. ERR: Failed to complete setup of assembly (hr = 0x80070005). Probing terminated.
이미 완료 한 것 :
내가 부여한 'C를 : /를 Inetpub/wwwroot에/웹 스위트/위젯'폴더 읽기 및 사용자에 대한 실행 권한 '네트워크 서비스 '.
섀도 복사 기능을 해제하면 모든 것이 잘됩니다.
Visual Studio 2008의 로컬 컴퓨터에서도 문제없이 실행됩니다.
위젯 폴더의 모든 파일 (폴더 자체 대신)에 읽기 및 실행 권한을 부여해도 문제가 해결되지 않습니다.
C :
나는 그것이 ASP.NET 임시 파일 폴더의 권한으로해야 할 생각 \ WINDOWS \ Microsoft.NET 프레임 워크 \ \ V2.0.50727 임시 \ ASP.NET 파일 \ 웹 제품군을
이를 폴더에있는 모든 하위 폴더와 그 안에있는 파일은 'NETWORK SERVICE'사용자에 대해 & 권한을 읽고 읽습니다. 그래서 그게 문제가 아니에요.
짧게 :
내 사이트 (IIS6에서 실행)가 새 AppDomain의 섀도 복사본 파일에 액세스 할 수없는 이유는 무엇입니까?
안녕하세요. 나는 같은 문제가있다. 마침내 해결책을 찾았습니까? –
아니요, 마지막으로 별도의 AppDomain을 사용하지 않고 대신 기본 ASP.NET AppDomain (이미 쉐도우 복사 기능을 사용하도록 설정되어 있음)을 사용하기로 결정했습니다.이 솔루션의 유일한 단점은 플러그인이 bin 디렉토리에 있어야한다는 것입니다. 관습 국장이 아니야. –