我開始在我的WCF服務中收到此錯誤,原因是我無法理解: 底層連接已關閉:連接意外關閉。WP7 WCF底層連接已關閉:連接意外關閉
服務器堆棧跟蹤:在 System.ServiceModel.Channels.HttpChannelUtilities.ProcessGetResponseWebException(引發WebException 引發WebException,HttpWebRequest的請求,HttpAbortReason abortReason)
在 System.ServiceModel.Channels.HttpChannelFactory.HttpRequestChannel.HttpChannelRequest.WaitForReply(時間跨度 超時)在 System.ServiceModel.Channels.RequestChannel.Request(消息消息,時間跨度 超時)在在 System.ServiceModel.Dispatcher.RequestChannelBinder.Request(消息 消息,時間跨度超時)System.ServiceModel.Channels.ServiceChannel.Call在 System.ServiceModel.Channels.ServiceChannelProxy.InvokeService(IMethodCallMessage methodCall(字符串動作, 布爾單向,ProxyOperationRuntime操作,對象[]插件, 對象[]奏,時間跨度超時) ,ProxyOperationRuntime操作)在 System.ServiceModel.Channels.ServiceChannelProxy.Invoke(即時聊天 消息)[0]時異常重新拋出:在 System.Runtime.Remoting.Proxies.RealProxy.HandleReturnMessage(即時聊天 reqMsg,即時聊天retMsg) System.Runtime.Remoting.Proxies.RealProxy.PrivateInvoke(MessageData & MSGDATA,的Int32類型)在IPublicService.GetProduct(字符串條形碼)
在PublicServiceClient.GetProduct(字符串條形碼)內部異常:基礎連接已關閉:連接 被意外關閉。在System.Net.HttpWebRequest.GetResponse() 在 System.ServiceModel.Channels.HttpChannelFactory.HttpRequestChannel.HttpChannelRequest.WaitForReply(時間跨度 超時)
這裏是服務方法:
public Product GetProduct(string barcode)
{
DataContext Db = new DataContext();
var p = Db.Products.Find(barcode);
if (p == null)
return null;
return new Product()
{
ProductID = p.ProductID,
Name = p.Name,
Nutrition = p.Nutrition,
Allergen = p.Allergen,
Image = p.Image,
ManufacturerID = p.ManufacturerID,
ReviewIDs = p.ReviewIDs
};
}
這裏是產品數據合同:
[DataContract]
public class Product
{
[Key]
[Required]
[DataMember]
public string ProductID { get; set; }
[Required]
[DataMember]
public string Name { get; set; }
[Required]
[DataMember]
public string Nutrition { get; set; }
[Required]
[DataMember]
public string Allergen { get; set; }
[Required]
[DataMember]
public string Image { get; set; }
[Required]
[DataMember]
public virtual Manufacturer ManufacturerID { get; set; }
[DataMember]
public virtual ICollection<Review> ReviewIDs { get; set; }
}
但是,如果我將服務方法更改爲:
public Product GetProduct(string barcode)
{
DataContext Db = new DataContext();
var p = Db.Products.Find(barcode);
if (p == null)
return null;
//return new Product()
//{
// ProductID = p.ProductID,
// Name = p.Name,
// Nutrition = p.Nutrition,
// Allergen = p.Allergen,
// Image = p.Image,
// ManufacturerID = p.ManufacturerID,
// ReviewIDs = p.ReviewIDs
//};
return new Product();
}
沒有異常拋出,它返回和空產品,所以我不知道是什麼造成了我得到的模糊異常,任何人都可以在這個問題上的一些亮光?
圖像有多大? – 2012-04-14 04:20:46
您確定沒有成員違反任何WCF限制(最大字符串長度,最大消息大小)? – ChrisWue 2012-04-14 04:32:59
@克里斯 - 你知道這些限制是什麼嗎?我想象圖像導致失敗(超時,大小等)。 – 2012-04-14 05:20:01