2014-01-09 3 views
0

C# 웹 서비스에서 32 비트 기본 DLL을 사용하고 있습니다. 모든 것은 IIS Express와 함께 VS에서 로컬로 잘 작동합니다. 그러나 IIS 호스팅 공급자 (IIS 7)에 사이트를 배포하면 DLL 호출 (플랫폼 호출 사용)이 작동하지 않습니다 (오류가 발생하지 않고 호출에서 반환되지 않고 웹 서비스가 갑자기 종료됩니다). 그러나 클라이언트 측에서 PageMethod 오류 함수를 통해 알립니다. "DLL 액세스를 거부 할 수 없습니다 (HRESULT 예외 : 0x80070005 (E_ACCESSDENIED))"배포 된 웹 사이트에서 기본 DLL을 사용하는 방법 (IIS 7)

공급자 IIS가 64 비트 모드로 실행 중이므로 내 프로세스를 32 비트로 바꾼다해도 아무런 차이가 없다. IIS 7에서 기본 DLL을 사용하려면 특별한 작업을 수행해야합니까? 네이티브 모듈을 사용하려면 서버에 등록해야합니까? DLL을 호출 할 때 이상한 동작에 대한 설명?

감사

답변

0

이미 검색 한 수 있지만,이 질문은 이미 요청을받은 것으로 보인다 : 여기 SO Question를 참조하지만 그것은 바로 이곳에서 DLL을 갖는 PATH 변수를 설정으로 요약된다.

+0

응답 해 주셔서 감사합니다. 내 기본 DLL은/bin 폴더에 있습니다. 전체 경로를 지정하여 DLL을로드하려고 시도했지만 도움이되지 않았습니다. 이상하게도 DLL을 지우더라도 오류가 발생하지 않습니다. 가져온 DLL 함수를 호출하기 직전과 직후에 디버그 로그를 놓았지만 로그는 호출 전 지점에 도달했음을 나타내지 만 호출 후 웹 서비스는이 시점에서 종료되지 않았지만 PageMethod를 통해 클라이언트 측에 통지됩니다 오류 함수 : "DLL 액세스를로드 할 수 없습니다 (HRESULT 예외 : 0x80070005 (E_ACCESSDENIED))" – user2852294

관련 문제