理解できない理由で、WCFサービスでこのエラーの受信を開始しました:基になる接続が閉じられました:接続が予期せず閉じられました。
サーバースタックトレース:System.ServiceModel.Channels.HttpChannelUtilities.ProcessGetResponseWebException(WebException webException、HttpWebRequest request、HttpAbortReason abortReason)
System.ServiceModel.Channels.HttpChannelFactory.HttpRequestChannel.HttpChannelRequest.WaitForReply(TimeSpan timeout)at System.ServiceModel.Channels.RequestChannel.Request(Message message、TimeSpan timeout)at System.ServiceModel.Dispatcher.RequestChannelBinder.Request(Message message、TimeSpanタイムアウト)at System.ServiceModel.Channels.ServiceChannel.Call(String action、Boolean oneway、ProxyOperationRuntime operation、Object [] ins、Object [] outs、TimeSpan timeout)at System.ServiceModel.Channels.ServiceChannelProxy.InvokeService(IMethodCallMessage methodCall、ProxyOperationRuntime操作)System.ServiceModel.Channels.ServiceChannelProxy.Invoke(IMessageメッセージ)で[0]で再スローされた例外:System.Runtime.Remoting.Proxies.RealProxy.HandleReturnMessage(IMessage reqMsg、IMessage retMsg)at System.Runtime.Remoting.Proxies.RealProxy.PrivateInvoke(MessageData&msgData、Int32 type)at IPublicService.GetProduct(ストリングバーコード)
PublicServiceClient.GetProduct(ストリングバーコード)内部例外:基になる接続が閉じられました:接続が予期せず閉じられました。System.Net.HttpWebRequest.GetResponse()at System.ServiceModel.Channels.HttpChannelFactory.HttpRequestChannel.HttpChannelRequest.WaitForReply(TimeSpan timeout)
サービス方法は次のとおりです。
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();
}
例外はスローされず、製品が返され、空になります。そのため、発生しているあいまいな例外の原因がわかりません。誰かがこの問題に光を当てることができますか?