2016-07-26 2 views
1

ASP 클래식 응용 프로그램에서 사용할 COM 개체를 C#으로 만들었습니다. 사용하는/codebase를 사용하여 등록 할 때 사용하지 마십시오. 내 질문은 이유입니다. 이 매개 변수를 사용해야합니까? 나중에 문제가 생길 수 있습니까?C# COM을 ASP 클래식에서 사용할 수 있도록 등록하십시오.

나는 이미 gacutil을 사용하여/codebase없이 시도했지만 괜찮은 것처럼 보이지만 ASP에서 실행하면 충돌이 발생합니다.

등록을 취소하는 좋은 방법이 있습니까? 나는/u를 사용했지만/codebase를 사용하여 등록한 후에는 "등록 해제"해도 영원히 작동합니다.

답변

2

/codebase 인수가 없으면 dll의 위치가 레지스트리에 기록되지 않고 로더가 dll을 찾을 수 없습니다.

COM 서버는 레지스트리 (클래스 ID 또는 클래스 ID에 매핑되는 ProgID에 의해 간접적으로)로 조회됩니다. 로더는 클래스에 대한 팩토리 기능을 호스팅하는 DLL을 찾아야합니다. registry for given CLSID을 입력하고 서버 정보를 검색하십시오.

GAC에 어셈블리를 설치하면 /codebase이 필요하지 않습니다. 그러나 GAC에 등록하려면 어셈블리가 strong-named이어야하며, 특히 개발 중에는 편리하지 않습니다.

+0

tks, 그래서/codebase없이 등록하는 이유는 무엇입니까? 어디서나 사용할 수 없다면 – Teta

+0

나는 대답에 대한 답변을 추가했습니다. –

관련 문제