2014-07-15 2 views
0

타사 DLL을 사용하는 WCF 서비스가 있습니다. 이 써드 파티 DLL은 com 레지스터 DLL입니다. 그러나이 DLL은 다른 DLL의 로컬 실행 경로에 있어야하는 관리 할 수없는 DLL을 사용했습니다. 문제는 IIS에서 WCF를 시작하면 타사 DLL 어셈블리가로드되지만 DLL은 응용 프로그램 bin 폴더에 없기 때문에 DLL을 찾을 수 없다는 것입니다. 나는 수동으로 다른 DLL을 bin 폴더에 넣었지만 실행 경로는 거기에 없다. 타사 DLL에는 자신의 디렉토리에있는 파일을 노출하는 메소드가 있지만 파일을 볼 수는 없습니다.IIS 7.0에서 WCF 실행 경로를 지정하는 방법

내가 문제를 알고있는 이유는 콘솔 응용 프로그램에서이 메서드를 붙여 넣으면 완벽하게 실행되기 때문에 DLL의 제 3 자 DLL을 내 BIN 폴더로 사용하여 작동하도록하기 때문입니다. 로컬 파일을보기 위해 DLL 메소드를 호출하면 내 응용 프로그램 실행 경로를 사용하고 있음을 명확하게 보여줍니다. 나는 그 일을하는 데 아무런 문제가 없다. 만약 내가 내 서비스의 실행 경로를 항상 내가 알고있을 수있는 곳에서 똑같이 강요 할 수 있다면, 나는 단지이 여분의 DLL을 자신의 것으로 밀어 넣고 잊을 것이다.

누구나 어떻게 달성 할 수 있습니까?

답변

0

유일한 해결책은 콘솔 응용 프로그램을 만드는 것입니다. 웹 서비스가 아닌 다른 곳에 서버에 설치하십시오. 콘솔 실행 경로를 웹 서비스에 하드 코딩하고 웹 서비스가 콘솔 앱 프로세스를 시작하도록 만들고 매개 변수를 전달한 다음 프로세스 종료를 기다립니다. 콘솔 앱이 닫으면 로그 파일을 읽고 결과를 추출합니다. 그런 다음 결과를 간단히 클라이언트에게 반환하십시오.

관련 문제