2012-09-21 3 views
1

VBScript를 통해 스크립팅 할 수있는 타사 응용 프로그램이 있습니다. 이제 실행중인 .NET 응용 프로그램을 호출하고 싶습니다. COM에서이 작업을 수행하려면 ExeComServer을 사용해야합니다. 내 워크 플로우에서는 이것이 불가능하다는 문제가 있습니다. 강력한 이름 때문에 COM + 서버도 불가능합니다..NET 응용 프로그램을 COM없이 VBScript에서 호출하십시오. 가능한?

VBScript에서 .NET으로 개체를 전달해야했습니다.

답변

1

COM이 문제가 해결되지 않으면 VBScript에서 소켓을 사용해 볼 수 있지만 모든 종류의 문제가 발생할 것입니다. 구입할 수있는 써드 파티 COM 기반 소켓 라이브러리가 있지만 사용하지 않았으므로 그 중 하나를 추천 할 수는 없습니다. .NET 응용 프로그램은 포트를 수신하고 스크립트와 통신하기 위해 상당히 수정되어야합니다. 이는 약간의 작업 일 것입니다.

내가 생각할 수있는 또 다른 가능한 옵션은 .NET에서 사용자를 위해 소켓 논리를 구현하고 .NET 응용 프로그램과 통신하는 COM 사용 가능 .dll을 만드는 것입니다. 그런 다음 VBScript에서이 개체의 인스턴스를 만들고 COM을 통해 해당 개체와 대화 할 수 있습니다. .dll은 소켓을 사용하여 .NET .exe와 통신합니다. 이렇게하면 소켓 끝에 2 개의 .NET 객체가 생기므로 .NET에서이를 구현하는 것이 더 쉽습니다. 기본 .exe를 변경하여 소켓을 청취해야합니다.

VBScript는 COM을 사용하도록 설계 되었기 때문에 다소 복잡합니다. COM을 사용하지 않는 요구 사항은 사용자가 할 수있는 일에 대한 제한 요소입니다. (내 생각조차도 COM 객체를 포함하지만 적어도 EXE COM 서버의 요구 사항은 제거 할 것입니다.) 더 간단한 옵션이있을 수 있습니다. 이것은 내 머리 꼭대기에 있습니다.

+0

나는 이것이하는 방법이라고 생각합니다. 명명 된 파이프와 WCF를 사용하여 .NET DLL 클라이언트 프록시를 디자인하면 소켓 대신 서버 응용 프로그램과 통신 할 수 있습니다. 그런 다음이 .NET DLL 클라이언트 프록시를 COM 가능하게 설정하고 등록한 다음 VBScript에서 사용할 수 있습니다. – Larry

+0

@Laurent 네, WCF를 사용하면 .NET에서 더 간단해질 수 있습니다. – xxbbcc

0

실행중인 .NET 응용 프로그램을 호출하는 한 가지 방법은 .NET 응용 프로그램에서 WCF 서비스를 노출하는 것입니다. VBScript는 웹 서비스를 호출 할 수 있습니다. XMLHTTP 객체를 사용합니다. 한편

은 또한 말했다 :

내가 .NET으로의 VBScript에서 개체를 전달했다.

이렇게하면 COM 개체를 마샬링하는 것이므로 COM을 사용하는 대신 다른 방법이 있다고 생각하지 않습니다.

관련 문제