我實現了一個單向wcf方法。我遵循本文中提到的方式來處理web服務調用article我使用下面的類來調用Web服務。WCF調用有時會默默地失敗
public delegate void UseServiceDelegate<T>(T proxy);
public static class Service<T>
{
public static ChannelFactory<T> _channelFactory = new ChannelFactory<T>("*");
public static void Use(UseServiceDelegate<T> codeBlock)
{
IClientChannel proxy = (IClientChannel)_channelFactory.CreateChannel();
bool success = false;
try
{
codeBlock((T)proxy);
proxy.Close();
success = true;
}
finally
{
if (!success)
{
proxy.Abort();
}
}
}
}
Service<IOrderService>.Use(orderService=>
{
orderService.PlaceOrder(request);
}
當我們移動代碼到生產,有時WCF調用失敗,而無須給予任何錯誤信息,有時它的工作沒有任何問題。我在同一個應用程序中有服務和客戶端。
任何幫助非常感謝。
我的接口:
[ServiceContract(SessionMode = SessionMode.NotAllowed)]
public interface IOrderService
{
[OperationContract(IsOneWay = true)]
void PlaceOrder(OrderRequest request);
}
我有嘗試/實現,其中我把這個服務catch塊。 – Lamps 2012-03-06 05:36:13
你在這個try catch塊中寫入的日誌怎麼樣,是不是它指向無聲故障的原因? – CSharpenter 2012-03-06 06:25:00
沒有任何異常,我們無法找到任何錯誤。 :( 可能有很多來自不同用戶的併發請求,其中一些被忽略,我想.. – Lamps 2012-03-06 09:53:05