2014-10-28 2 views
0

최근 회사에서 일부 인증 변경 사항이 있으며 모든 응용 프로그램에서 인증 시스템을 변경해야합니다. 우리는 인증에 관한이 논리를 가지고있는 DLL (Auth.dll)을 가지고있다. 우리의 모든 응용 프로그램에는 이러한 Auth.dll 파일이 있으며 인증에 동일한 논리를 사용합니다.파일 또는 어셈블리를로드 할 수 없습니다. asp.net

우리의 전략은 dll을 수정하여 새로운 인증 논리를 사용하는 것입니다. 메서드 서명은 모든 응용 프로그램의 다른 위치에서 호출하는 메서드이기 때문에 동일하게 유지됩니다.

우리는 몇 명의 사용자가 여전히 사용하는 우리 회사의 아카이브 응용 프로그램 (.Net 프레임 워크 2.0 기반)을 가지고 있습니다. 이러한 아카이브 응용 프로그램의 문제점은 소스 코드가 없다는 것입니다. 그래서 난 그냥 새 DLL을 만들고 오래된 DLL이 호스팅 위치에 프로덕션 서버에 대체하려고 노력하고 있어요. 다른 모든 것은 동일하게 유지됩니다.

프레임 워크 2.0을 사용하여 새 dll을 만들었습니다. 나는 그것을 단위 테스트하고 잘 작동합니다. 내가 점점 오전 문제입니다 -

Could not load file or assembly 'Auth, Version=1.0.0.0, Culture=neutral, PublicKeyToken=ae1958e6e8b32d9c' or one of its dependencies. The system cannot find the file specified. 

나는 새로운 Auth.dll에 공개 키 토큰을 확인하고 괜찮아요 보인다. 버전도 괜찮아 보인다. Auth dll에는 .NET Framework 2.0 어셈블리의 참조 만 있습니다.

어떤 아이디어가 잘못된 것일까 요?

감사

+0

의견을 보내 주셔서 감사합니다. 모든 어셈블리에서 ILSpy를 사용하고 Auth.dll의 참조를 새 DLL과 비교했습니다. 모든 참조 서명은 괜찮아 보입니다. 다른 제안? – user979189

+0

로드 중에 액세스하려고하는 파일을 보려면 filemon과 같은 것을 시도해 볼 수는 있지만 이는 프로세스입니다. 또한 Amberfish가 있는데, 나는 그것을 사용한 적이 없지만 도움이 될 것입니다. – punkcoder

답변

1

쉽게 http://ilspy.net/ 같은 것을 사용하여 DLL의 소스 코드를 얻을 수, 이것은 다음의 소스 코드를 얻을 수 및 재 컴파일 할 수있다. 난 항상 이러한 유형의 문제를 추적하는 데 어려움을 겪었지만, ILSPY를 사용하면 Auth.dll이 참조하는 DLL을 모두 볼 수 있습니다.

절대적으로 최후의 수단으로 sysinternals의 도구 중 일부를 사용하여 참조 용 DLL이 없는지 확인하기 위해로드 될 때 하드 드라이브에서 무엇이 액세스되고 있는지 확인할 수 있습니다. 희망이 도움이됩니다.

0

gac에 auth.dll을 등록했거나 아카이브 응용 프로그램 bin 폴더에 넣었습니까?

또한 보관 응용 프로그램이 이전 auth.dll을 참조하는 경우 새 문서의 서명은 이전의 auth.dll과 정확히 일치해야하며 그 의미는 정규화 된 형식 이름입니다.

예.

Auth, Version=1.0.0.0, Culture=neutral, PublicKeyToken=ae1958e6e8b32d9c 

지금은 이전과 동일해야합니다.

또는 punkcoder로 제안하고 ILSpy로 소스를 재 작성하거나 ILDASM을 사용하고 다시 참조하도록 ILASM을 변경하십시오.

0

C:\Windows\assembly에서 검색하러 제품을 찾으십니까? 사례 번호, 귀하는 귀하의 구성 요소를 설치하거나 동일한 버전을 가져야합니다.

관련 문제