2011-03-25 85 views
1

我正在創建一個日誌記錄對象,它將把所有日誌發送給它,並通過WCF和MSMQ(netMsmqBinding)將它們發送到我們的數據庫。此日誌記錄對象具有LoggingHost的服務引用(其中包含合同和所有必需的WCF內容)。我可以使用單獨的對象來包含Server Reference嗎?

我有一個測試類,由一個簡單的Web表單組成,我輸入消息併發送到此日誌記錄對象,然後發送到我們的數據庫。我遇到的問題是,我能夠得到這個簡單的功能工作的唯一方法是,如果這個測試類也有一個服務引用到相同的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 2011-03-25 15:40:11

+0

對不起,我編輯了帖子以輸入錯誤信息。完全忘記包括原來的。 – jnevelson 2011-03-25 15:54:28

回答

1

您的日誌記錄對象的一些配置需要複製到您的測試應用程序的配置中。具體來說,在添加服務引用之後,您的日誌記錄對象的項目中應該有一個app.config。你幾乎需要整個

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

該app.config的一部分複製到您的測試應用程序的app.config中。

編輯

更具體地說,有一個部分,看起來像這樣:

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

這是配置的system.serviceModel部分內。這是您收到的錯誤中引用的端點。此配置有必要告訴您的客戶去哪裏與服務交談。

+0

這個技巧。感謝您的幫助。 – jnevelson 2011-03-25 16:06:43

+0

沒問題 - 我剛剛碰到的東西,所以它在我心中是新鮮的。很高興幫助。 – Zannjaminderson 2011-03-25 16:08:48

相關問題