파일, 어셈블리 또는 종속성 중 하나를 로드할 수 없습니다.액세스가 거부되었습니다.문제는 무작위이지만 한 번 발생한 후에도 계속됩니다.
이 오류에 대한 많은 정보를 찾았습니다. '오류: 파일이나 어셈블리 '*.dll' 또는 해당 종속성 중 하나를 로드할 수 없습니다.접근거부었습니다되이▁'▁i.' 하지만 대한 을 찾지 못했습니다.하지만 저는 제 시나리오에 대한 구체적인 답을 찾지 못했습니다.내 사이트는 6개의 서로 다른 프로덕션 서버에 배포되어 있으며, 이 문제에 직면한 서버는 한 대뿐입니다.문제는 무작위적이지만 한 번 발생한 후에는 web.config 파일에서 작은 수정을 수행하여 사이트를 다시 컴파일하고(web.config에서 수정한 후 웹 응용 프로그램을 다시 컴파일하는 방법을 알고 있습니다) 해당 서버의 사이트가 작동을 시작할 때까지 계속됩니다.어제는 한 달 동안 작업한 후 이슈가 재현되었습니다.우리는 이 문제를 생산할 여유가 없습니다.
이슈 세부 정보:
'/' 응용 프로그램에 서버 오류가 있습니다.____________________________ 파일 또는 어셈블리 'MainCore'를 로드할 수 없습니다.DbImppl, Version=0.0.0, Culture=neutral, PublicKeyToken=proxy' 또는 해당 종속성 중 하나입니다.액세스가 거부되었습니다.설명:현재 웹 요청을 실행하는 동안 처리되지 않은 예외가 발생했습니다.오류에 대한 자세한 내용과 코드에서 발생한 오류에 대한 자세한 내용은 스택 추적을 검토하십시오.
예외 세부 정보:시스템.IO.FileLoadException:파일 또는 어셈블리 'MainCore'를 로드할 수 없습니다.DbImppl, Version=0.0.0, Culture=neutral, PublicKeyToken=proxy' 또는 해당 종속성 중 하나입니다.액세스가 거부되었습니다.
원본 오류: 현재 웹 요청을 실행하는 동안 처리되지 않은 예외가 생성되었습니다.예외의 출처 및 위치에 대한 정보는 아래의 예외 스택 추적을 사용하여 식별할 수 있습니다.
어셈블리 로드 추적:다음 정보는 어셈블리가 MainCore인 이유를 확인하는 데 도움이 될 수 있습니다.DbImppl, Version=0.0.0, Culture=neutral, PublicKeyToken=hostname'을(를) 로드할 수 없습니다.
WRN: 어셈블리 바인딩 로깅이 해제되었습니다.어셈블리 바인딩 실패 로깅을 활성화하려면 레지스트리 값 [HKLM\Software\Microsoft\]를 설정합니다.Fusion!EnableLog](DWORD)을 1로 설정합니다.참고: 어셈블리 바인딩 실패 로깅과 관련된 일부 성능 저하가 있습니다.이 기능을 해제하려면 레지스트리 값 [HKLM\Software\Microsoft\]를 제거합니다.Fusion!EnableLog].
스택 추적:
[ 이름: ' 또는 어셈블리를 할 수 .파일 또는 어셈블리 'MainCore'를 로드할 수 없습니다. Culture=neutral,, Version=0.0.0, Culture=neutral, PublicKeyToken=proxy' 또는 해당 종속성 중 하나입니다.액세스가 거부되었습니다.] ...DbImppl.Event.TTC 컨트롤러입니다TTC 이벤트 컨트롤러입니다.GetEventFields(Int32 eventId) +0 Web스위트룸, 스포츠 채널파일 형식.TTC 모델 컨트롤러.\...에 이벤트 목록 노드, ITTC ctrl, root\SportChannel\에서 이벤트 필드 목록(XmlElement 이벤트 노드, ITTC 이벤트 컨트롤러 ctrl, Int32 eventId, PlayerType studyType) 추가모델 임플\TTC.cs:171 TTCModelController.cs:171 ...파일 형식.TTC 모델 컨트롤러....\...에서 최신 root\SportChannel\fourTourSchedulesXml() 모델 임플\TTC.cs:283 TTCModelController.cs:283 ...WebRoot.사용자 컨트롤.파일은 . 송신기, +시스템입니다.Page_Load(오브젝트 송신기, 이벤트 인수) +491 시스템.유틸리티.헬퍼입니다.파일. t, 시스템EventArgFunctionCaller(IntPtrfp, Objecto, Objectt, EventArges) +25 스유틸리티.파일:CalliEventHandlerDelegateProxy가 지원됩니다.콜백(객체 발신인, 이벤트 인수) +42 시스템.이벤트 처리기.(개체 보낸 사람, 이벤트 인수) +0 시스템을 호출합니다..message.UI.ui. +시스템.OnLoad(이벤트 인수) +132 시스템..message.UI. +시스템.재귀 로드() +66 시스템..message.UI. + 시스템재귀 로드() +191 시스템..message.UI. + 시스템재귀 로드() +191 시스템.sys.UI.이전 단계 , 에는 AsyncPoint 이후 단계 포함 +2428ProcessRequestMain(AsyncPoint 이후 단계 포함) +2428
____________________________________버전 정보:Microsoft .NET Framework 버전: 2.0.50727.5446, ASP.NET 버전: 2.0.50727.5420
제 시나리오에서는 web.config 파일에 ID 노드가 있다는 것을 발견했습니다.
<identity impersonate="true" userName="blah" password="blah">
노드에서 userName 및 password 매개 변수를 제거하자 작동하기 시작했습니다.
다른 옵션은 지정된 userName이 다양한 C:에 있는 "Temporary ASP.NET Files" 폴더와 함께 작동할 수 있는지 확인해야 하는 경우입니다.\Windows\Microsoft.NET\Framework{version} 폴더입니다.
이것이 다른 사람에게 도움이 되기를 바랍니다!
32비트 응용 프로그램 활성화 매개 변수를 "true"(iis 응용 프로그램 풀의 고급 설정)로 설정한 경우에도 동일한 문제가 해결되었습니다.
나의 해결책은 다음과 같습니다.
아래에서 루트 폴더를 찾지 못했습니다.C:\Windows\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files
.
Google에서 현재 사용자에 대한 권한 문제일 수 있다고 알려주었더니 현재 ID:IIS APPPOOL
Identity인 : 서의나인부현분재 ID작버:NT AUTHORITY\NETWORK SERVICE
.
를 그런다를현 ID에에서 경했습니다변으로 했습니다.IIS APPPOOL
NT AUTHORITY\NETWORK SERVICE
.
여기서 웹 앱을 재설정하면 임시 ASP.NET 캐시가 재구축되어 문제가 해결됩니다.
대부분의 해결책을 시도했지만 여전히 문제가 있는 다른 사람들에게.
제 솔루션은 이 게시물의 맨 아래에 있는 다른 솔루션과 다르지만, 시도하기 전에 다음 목록을 모두 사용했는지 확인하십시오.확실히, 저는 그것들을 모두 시도했지만 소용이 없었습니다.
다시 컴파일하고 처음부터 다시 배포합니다. 기존 앱을 업데이트하지 마십시오. 답변
디렉토리 "C:"에 대한 IIS_IUSRS 전체 액세스 권한 부여:\Windows\Microsoft.NET 프레임워크\v4.0.30319\임시 ASP.NET 파일"
사용 중인 프레임워크 버전을 기억하십시오.앱에서 가장을 사용하는 경우 IIS_IUSRS 대신 해당 ID를 사용합니다.
디렉토리 "C:"의 모든 내용을 삭제합니다.\Windows\Microsoft.NET 프레임워크\v4.0.30319\임시 ASP.NET 파일".
사용 중인 프레임워크 버전을 기억하십시오.
앱에서 사용 중인 AppPool의 ID를 ApplicationPoolIdentity에서 NetworkService로 변경합니다.
IIS > Application Pools > 현재 앱 풀 선택 > 고급 설정 > Identity
SO Answer(작동하지 않으면 기본값으로 복원하십시오)
IIS 버전 및 AppPool .NET 버전이 앱과 호환되는지 확인합니다.처음 배포하는 경우에 매우 적합합니다.SO 앤서
해당하는 경우 가장 구성을 확인합니다.SO 앤서
내 솔루션:
특정 안티바이러스 소프트웨어가 "Temporary ASP.NET Files" 디렉터리 내의 DLL 컴파일을 적극적으로 차단하고 있다는 것을 알게 되었습니다. McAfee는 IT 담당자가 설치를 알리지 않았습니다.
McAfee 전문가와 Microsoft의 조언에 따라 실시간 검색에서 "Temporary ASP.NET Files" 디렉토리를 제외해야 합니다.
출처:
안티바이러스는 기능만 수행하므로 비활성화하지 마십시오.\Temporary ASP.NET Files{project name} 디렉터리에 누락된 DLL 파일을 수동으로 복사하지 마십시오. 이는 덕트 테이프 작업이기 때문입니다.
가장을 사용하는 경우 다음 폴더의 관련 사용자 계정에 쓰기 및 수정 권한을 포함한 권한을 부여해야 합니다.
C:\Users\[username]\AppData\Local\Temp\Temporary ASP.NET Files
수정 권한을 놓쳐서 기본 권한을 추가할 수 없었습니다.
IIS -> 응용 프로그램 풀 -> 고급 설정 -> 32비트 응용 프로그램 사용
여전히 문제가 발생하는 경우 다음을 수행합니다.
IIS 관리자 열기 -> 응용 프로그램 풀 -> 응용 프로그램 풀 선택 -> 고급 설정 -> '프로세스 모델'에서 '사용자 프로파일 로드' 설정을 True로 설정합니다.
저는 제가 그것과 이것을 연구하는 데 하루 정도 낭비했다고 생각합니다.
Framework가 이 위치에서 DLL에 액세스하여 TemporaryAsp에 배치하려고 하므로 솔루션의 디버그 폴더에 가장 사용자를 추가해야 합니다.넷 폴더.
기본적으로 다음 두 단계를 따릅니다.
임시 ASP에게 권한을 부여합니다. 아래의 넷
C:\Windows\Microsoft.NET\Framework\v4.0.30319\Temporary ASP.NET Files
여기에 추가할 사용자가 가장할 때 사용하는 사용자와 동일한지 확인합니다.가장 사용자를 Solution YourSolutionPath의 디버그 폴더에 추가합니다.\bin\디버깅
이것은 효과가 있을 것입니다.
저는 IIS로 이동 -> Application Pools -> Advanced Settings -> Process Model -> Identity가 기본 제공 계정(Application Pool Identity)에서 사용자 지정 계정(My Domain User)으로 변경되었습니다.
모든 종속 DLL 파일을 재구성하고 다시 배포하여 동일한 문제를 해결했습니다.
저의 경우 안티바이러스(McAfee)의 액세스 보호 기능 때문이었습니다.이러한 오류로 인해 이 파일에 대한 액세스가 차단되었습니다.
사용하지 않도록 설정하고 솔루션을 실행했습니다.일부 파일에 대한 액세스에 영향을 줄 수 있는 실행 중인 유틸리티 응용 프로그램을 확인할 수 있습니다.
IIS 설정을 확인합니다..NET 프레임워크 내에서 32비트 또는 64비트 컴파일을 사용하는 IIS 7.5를 사용합니다.32비트 모드를 사용하는 앱이 있는 경우 앱 풀에서 32비트 명령을 사용할 수 있도록 설정해야 합니다.그렇지 않으면 보안을 설정하거나 DLL에 강력한 서명을 해도 아무 것도 작동하지 않는 것 같습니다.
나는 새로운 서버에 환경을 설정하고 있습니다.내 web.config는 아래와 같은 ID 노드를 얻었습니다."파일, 어셈블리 또는 그 종속성 중 하나를 로드할 수 없습니다.액세스가 거부되었습니다.문제는 무작위이지만, 한 번 발생한 후에도 계속됩니다."
추가된 ccs\HJKWeb을 새 서버의 사용자 목록으로 지정합니다.
<authentication mode="Windows" />
<identity impersonate="true" password="******" userName="ccs\HJKWeb" />
VS에서 이 오류가 발생했습니다.Visual Studio를 관리자 권한으로 실행하지 않고 솔루션을 연 것으로 나타났습니다.Visual 스튜디오를 종료하고 관리자 권한으로 다시 실행한 후 재구축을 통해 이 문제가 해결되었습니다.
누군가에게 도움이 되길 바랍니다.
저는 제 경우에 사칭을 사용하지 않았습니다.제 솔루션은 사용자 그룹 "IIS_IUSRS"의 프로젝트 디렉토리에 대한 전체 액세스 권한을 부여하는 것이었습니다.
Go to run : ctrl + R
Type : %temp%
모든 파일 및 폴더 삭제
Rebuild Project.
done!
이 문제가 발생하여 참조된 패키지/어셈블리가 Windows에서 암호화되고 있는 것으로 나타났습니다.이 문제는 회사에서 내 문서 폴더를 암호화하도록 정책을 구현하고 Visual Studio 솔루션이 해당 디렉터리 아래에 있기 때문에 발생했습니다.
Windows 탐색기에서 수동으로 파일/디렉토리 속성에 들어가 암호화를 해제할 수 있습니다.하지만 제 경우에는 네트워크 정책이 결국 다시 변경될 것이기 때문에 이것은 일시적인 해결책이었습니다.VS 솔루션을 암호화되지 않은 다른 위치로 이동했습니다.
이 경우 Visual Studio에서 제대로 배포하지 않고 서버 간에 서비스를 복사했습니다.긴 이야기입니다.
어쨌든, 저는 모든 적절한 NTFS 권한과 다른 권한을 설정했지만, 여전히 서비스에 대한 기본 DLL을 로드할 수 없었습니다.
해당 service.pdb 파일의 이름을 다른 이름으로 변경하여 수정했습니다.
를 들어, 제 폴더가 : 예를들어더, 은내폴다니입다음다:. \bin\ service.dll service.dll.config service.pdb
service fineservice.pdb 파일 이름을 zzservice.pdb 파일 이름을 service.dll로 했습니다.
액세스 거부 대신 DLL을 찾을 수 없는 경우 적절한 VC++ 재배포 가능 파일이 설치되어 있는지 확인합니다.
저의 경우 단순 가장을 사용하고 있었는데 가장 사용자가 프로젝트 어셈블리 중 하나에 액세스하는 데 문제가 있었습니다.내 솔루션:
- 내부 예외 메시지를 찾아 문제가 있는 어셈블리를 식별합니다.
어셈블리 파일의 보안 속성을 수정합니다.
가장에 사용하는 사용자 계정을 그룹 및 사용자 이름에 추가합니다.
해당 사용자 계정에 어셈블리 파일에 대한 전체 액세스 권한을 부여합니다.
제 경우 읽기 권한을 가진 사용자를 폴더 권한에 추가해야 했습니다.실수로 제거했습니다. 컴퓨터\사용자
언급URL : https://stackoverflow.com/questions/11096225/could-not-load-file-or-assembly-or-one-of-its-dependencies-access-is-denied-th
'programing' 카테고리의 다른 글
MongoDB와 함께 PouchDB 사용 (0) | 2023.07.10 |
---|---|
GitHub 풀 요청을 수정하는 방법은 무엇입니까? (0) | 2023.07.10 |
특정 파일을 무시하는 대신 특정 파일만 포함하도록 git에게 말하는 방법이 있습니까? (0) | 2023.07.10 |
Git, 내 최근 N개 커밋의 댓글 목록 보기 (0) | 2023.07.10 |
SQL Server 2005 날짜 추가를 사용하여 날짜에 날짜 추가 (0) | 2023.07.10 |