2012-04-16 2 views
2

다른 프로젝트에 통합해야하는 WCF 서비스가 있습니다. 자체적으로 서비스를 제공하는 대신 두 번째 프로젝트에서 서비스를 호스팅하고 싶습니다 (Sitecore 구현이며 유지 관리 관점에서 일을 더 쉽게 만듭니다). 프로젝트는 다른 솔루션에 있습니다. 코드가 다른 프로젝트에 있더라도 두 번째 프로젝트가 서비스를 제공 할 수 있습니까? 나는 내가 DLL을 참조 할 필요가 있다는 것을 알고 있지만 그 이상의 방법으로 서비스를 설정하는 방법을 모르겠습니다. 나는 서비스의 일부 구현을 필요로한다고 생각하지만 그것은 나의 지식의 범위이다.다른 프로젝트의 한 프로젝트에서 WCF 서비스를 호스팅하는 방법은 무엇입니까?

두 번째 프로젝트가 C# 인 동안 서비스는 VB로 작성됩니다. 그것은 DLL을 통해 모든 서비스 코드를 참조하기 때문에 중요하지 않습니다.하지만 필자는 그것을 언급 할 것이라고 생각했습니다.

UPDATE 내가 얘기를 깜빡 했네요 것은 내가 서비스도 웹 서비스와 같은 다른 응용 프로그램에서 사용할 수 있도록하고 싶습니다이다. 따라서 서비스는 두 번째 앱 내부에 세워서 세 번째 앱이 서비스를 호출 할 수 있습니다. 나는 이것이 지금까지 어떤 반응에도 영향을 미치는지 모르겠습니다.

답변

0

호스트 프로젝트에서 서비스를 부분적으로 구현할 필요는 없습니다. WCF 서비스는 기술적으로 또 다른 .NET 클래스 일뿐입니다. 클래스의 노출은 클래스의 형식 또는 .svc 파일을 참조하는 ServiceHost 코드 일뿐입니다 (IIS를 통해 노출되는 경우). 그리고 VB/C#은 아무런 차이를 만들지 않을 것입니다. 당신의 WCF 서비스는 DLL로 컴파일하는 경우

3

, 그것은 참조를 추가하고 간단해야한다 :

static void Main(string[] args) 
{ 
    ServiceHost host = new ServiceHost(typeof(MyService)); 
    host.Open(); 

    Console.ReadLine(); 
    host.Close(); 
} 
+0

중요한 정보가 누락되어 원래 요청이 업데이트되었습니다. 두 번째 앱이 다른 앱에 서비스를 노출하고 싶습니다. 따라서 서비스를 노출하는 두 번째 앱의 어딘가에서 실제 .svc 파일이 필요하다고 가정합니다. – gfrizzle

+0

ServiceHost를 실행하는 관리되는 프로세스가 서비스를 공개합니다. Windows 서비스, Consle 응용 프로그램 또는 IIS가 될 수 있습니다. IIS에서 서비스를 호스팅하는 경우 .SVC 파일이 필요할 때입니다. –

+0

그리고 내 예제에 따라 exe를 사용하는 경우 서비스 (Appeon의 내용)에서 App.config의 관련 비트를 복사해야합니다. – GazTheDestroyer

1

이 서비스는 ServiceHost를 실행하는 관리 프로세스에 의해 노출되어있다.

Windows 서비스, Consle 응용 프로그램 또는 IIS 일 수 있습니다.

IIS에서 서비스를 호스팅하는 경우 .SVC 파일이 필요할 때입니다.

WCF에서 호스팅하지 않는 경우 WCF 런타임에 서비스 노출 방법을 알려주는 app.config 파일을 만들어야합니다. 이렇게하려면 <System.ServiceModel/> 구성 섹션을 사용하십시오.

서비스가 호스트되면 모든 클라이언트 응용 프로그램에서 사용할 수 있습니다.

관련 문제