2012-03-02 1 views
0

dll을 참조하는 wcf 서비스가 있습니다. 유일한 방법은 % windir %/system32 폴더에 dll을 두는 것입니다. iis7 hosted wcf service : system32 폴더에 dll을 배치하지 마십시오.

  • bin 폴더 및/또는 기타 응용 프로그램 폴더
  • 을에 DLL을 배치 IIS가, 개발 서버 및 IIS를 표현 (하지만이 관계가 없습니다) 사이에 내가

    • 을 시도

      상황이 전환 시도

    • "regsvr32"유틸리티를 사용하려고하는데 dll이 com dll이 아니므로 작동하지 않습니다. (ddl 진입 점 없음)
    • GAC를 조작 할 수 없다고 생각하는 .NET DLL이 아닙니다. T와 함께 일하는 그의 내가 실제로
      내가 system32를에 DLL을 배치하지 않아도하지만이에 포함하도록 DLL을 액세스하기위한 간단한 방법을 원하는 것은 어떤 성공

    없이 시스템 경로 변수로 재생

  • 응용 프로그램 폴더에 저장하고 거기에서 액세스하십시오.

    무엇이 누락 되었습니까?


    편집 : 내가 this 게시물 흥미와 유사한 발견했다 그러나 다시, 그것은 또한 이동하는 방법이되지 않습니다 SYSTEM32 방법을 사용합니다. 이것은 Win32에서 네이티브 라이브러리 인 경우

  • 답변

    1

    는, 당신은 알려진 위치에서 "프리로드"어딘가에 일찍 처리 파이프 라인에서, 매개 변수로 라이브러리의 전체 경로를 통과 LoadLibrary을 pinvoked 사용 할 수 있습니다.

    DllImport으로 장식 된 라이브러리의 모든 메소드가 호출되면 런타임은 라이브러리를로드하려고 시도하지만 (dll을 찾을 수 없어서 떨어지게됩니다.) 사용자가 사전로드 한 이후로 로딩이 성공합니다 (로더가 라이브러리를 검사합니다 파일 이름은 라이브러리가로드 된 디렉토리에 아무런주의를 기울이지 않습니다.

    +0

    아니요, 네이티브 라이브러리가 아니면 system32에 넣을 필요가 없습니다. 이미 있습니다. – arkoak

    +1

    "native"는 .NET이 아니라 COM이 아닙니다. –

    +0

    오 오클, LoadLibrary를 사용하는 방법을 확인해야합니다. – arkoak