2011-03-25 5 views
1

나는 모든 로그를 보내고 WCF와 MSMQ (netMsmqBinding)를 통해 로그를 가져 와서 데이터베이스에 보냅니다. 이 로깅 개체에는 LoggingHost에 대한 서비스 참조가 있습니다 (계약 및 모든 필수 WCF 항목 포함).별도의 개체를 사용하여 서버 참조를 포함 할 수 있습니까?

나는 메시지를 입력하는 간단한 웹 양식으로 구성된 테스트 클래스를 가지고 있으며이 로깅 개체와 데이터베이스에 보내진다. 내가 실행중인 문제는이 간단한 기능을 작동시킬 수있는 유일한 방법은이 테스트 클래스에 동일한 LoggingHost 클래스에 대한 서비스 참조가있는 경우입니다.이 클래스는 다소이 로깅 개체의 전체 지점을 죽입니다. 이 로깅 개체 안에 모든 WCF 및 MSMQ 기능을 캡슐화하여 Logger.Debug ("message")를 치고 데이터베이스에 메시지를 보냅니다.)

모든 아이디어가 우수 할 것입니다. 내가 성취하려는 것을 명확하게해야하는지 알려주세요.


죄송 편집, 나는 로거에게 메시지를 보내 테스트 페이지를 사용할 때 온다 오류를 넣어해야합니다. 테스트 페이지에 서비스 참조가 없으면이 오류가 발생합니다. 참조가 있으면 모든 것이 제대로 작동합니다.

Could not find default endpoint element that references contract 'ServerLogger.ILoggingService' in the ServiceModel client configuration section. This might be because no configuration file was found for your application, or because no endpoint element matching this contract could be found in the client element. 
+0

테스트 응용 프로그램 내에 서비스 참조가 필요합니까? – Zannjaminderson

+0

죄송합니다, 게시물을 편집하여 오류 메시지를 넣습니다. 원래 그 것을 포함하는 것을 완전히 잊었습니다. – jnevelson

답변

1

로깅 개체의 구성 중 일부는 테스트 응용 프로그램의 구성으로 복사해야합니다. 특히 서비스 참조를 추가 한 후 로깅 개체의 프로젝트 내에 app.config가 있어야합니다. 당신은 꽤 많이 필요합니다 전체

<system.ServiceModel> 
    <!--service reference config info--> 
</system.ServiceModel> 

테스트 애플 리케이션의 app.config에 복사 된 부분.

<client> 
    <endpoint address="some URI" binding="some binding type" 
     contract="contract for your service name="name" /> 
</client> 

이것은 설정의는 system.serviceModel 섹션에 있습니다 :

편집

은보다 구체적으로,이처럼 보이는 부분이있다. 이것은 수신중인 오류에서 참조되는 엔드 포인트입니다. 이 구성은 클라이언트에게 서비스와 대화 할 장소를 알려주는 데 필요합니다.

+0

그건 속임수 였어. 도움을 주셔서 감사합니다. – jnevelson

+0

문제 없습니다. 최근 방금 쳤던 것이 내 마음 속에 신선했습니다. 기쁜 데 도움이되었습니다. – Zannjaminderson

관련 문제