我把我的WCF服務拋出後出現錯誤,出現此錯誤:如何有效地處理WCF服務與錯誤處理
The communication object, System.ServiceModel.Channels.ServiceChannel, cannot be used for communication because it is in the Faulted state.
錯誤是由使用
throw new FaultException<DatabaseFault>(new DatabaseFault(e.Message));
如何服務拋出我可以如何處理這種情況,而不必每次都重新啓動客戶端和服務?
我使用WCF 4.0,C#。
編輯1:我使用net.tcp綁定爲WCF服務。
編輯2:我想要一個有效的方式來使用WCF。這與John S所說的無關。
編輯3:我的代碼有效。但我認爲它不像它應該(它被設計的方式)運行。
這是它承載我的服務控制檯應用程序:
using (ServiceHost host = new ServiceHost(typeof(AuctionService)))
{
Console.WriteLine("AuctionWCF.TestHost Started");
host.AddServiceEndpoint(
typeof(IAuctionService),
new NetTcpBinding(),
"net.tcp://localhost:9000/AuctionWcfEndPoint");
host.Open();
Console.WriteLine("AuctionWCF.TestHost listens for requests");
Console.ReadLine();
}
這是客戶:
AuctionService = new ChannelFactory<IAuctionService>(
new NetTcpBinding(),
new EndpointAddress("net.tcp://localhost:9000/AuctionWcfEndPoint")).CreateChannel();
難道我做錯了什麼?
的[什麼是WCF客戶端的最佳解決方法'using'阻止問題?(http://stackoverflow.com/questions/可能重複anothe很好的答案573872 /什麼是最好的解決方法爲wcf客戶端使用塊問題) – 2011-12-28 17:51:27
這是如何不高效?另外,我剛剛發現了你確切的問題。你爲什麼認爲不是這樣? – 2011-12-28 18:23:49
我不想每次打電話給WCF時打開一個頻道。我想每次都使用同一個頻道,如果它無法啓動另一個頻道。我剛開始使用WCF工作,並希望針對此問題提供一些策略 – 2011-12-28 18:28:44