1

WCFサービスで例外がスローされるので少し助けが必要です。重要なのは、WPFアプリケーションを開発する必要があり、データを処理するためにWCFが最良の選択であると聞いたので、基本的な知識だけで使用しましたが、今はこの問題があります。

重要なのは、Customerクラス、Supplierクラス、Orderクラスがあります。次に、2つのサービスがあります。最初のサービスには、データベースから顧客とサプライヤーを追加、読み取り、編集するためのすべてのメソッドがあります。このサービスは完全に正常に機能します。2番目のサービスには、新しい注文を追加し、注文を編集してデータベースから読み取るメソッドがありますが、このサービスには問題があります。

クラスCustomerには、サプライヤ(顧客が購入するサプライヤ)のリストがあり、クラスSupplierには、顧客(そのサプライヤから購入する顧客)のリストがあります。クラスオーダーには、顧客、サプライヤー、およびItensのリストがあります(そして、itensはオーダーと一緒にデータベースに追加されます)。

注文を追加するメソッドは正常に機能しますが、注文が追加されると、注文を一覧表示するメソッドはTargetInvocationExceptionをスローします。私はインターネットでたくさん検索しました、そして私が見つけた最良の答えはそれがおそらく「CiclycReference」であるということです。

注文を一覧表示するメソッドはリポジトリクラス内にあり、次のようになります。

public IQueryable<Order> ListOrders()
{
    return Context.Set<Order>().Include(x => x.Customer).Include(x => x.Supplier);
}

ここで、Contextはエンティティフレームワークコンテキストです。インクルードを削除して、顧客とサプライヤを別々にロードしようとしましたが、結果は同じ例外でした。

誰かが私を助けてくれますか?さらに情報を投稿する必要がある場合は、教えてください。そして、この問題が些細なことである場合は申し訳ありませんが、私はWPFとWCFに慣れていないので、まだ少し混乱しています。

よろしくお願いします。

以下の例外を編集

http://SomeService.com/OrdersService.svcへのHTTP応答の受信中にエラーが発生しました 。これは、HTTPプロトコルを使用していないサービスエンドポイントバインディングが原因である可能性があります。これは、HTTPリクエストコンテキストが原因である可能性もあります

サーバーによって中止されました(おそらくサービスのシャットダウンが原因です)。詳細については、サーバーログを参照してください。

サーバースタックトレース: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 IOrdersService.ReturnOrders( )OrdersServiceClient.ReturnOrders()で

内部例外:基になる接続が閉じられました:受信時に予期しないエラーが発生しました。System.Net.HttpWebRequest.GetResponse()でSystem.ServiceModel.Channels.HttpChannelFactory.HttpRequestChannel.HttpChannelRequest.WaitForReply(TimeSpanタイムアウト)で

内部例外:トランスポート接続からデータを読み取れません:既存の接続がリモートホストによって強制的に閉じられました。System.Net.Sockets.NetworkStream.Read(Byte [] buffer、Int32 offset、Int32 size)at System.Net.PooledStream.Read(Byte [] buffer、Int32 offset、Int32 size)at System.Net.Connection.SyncRead (HttpWebRequestリクエスト、ブール値userRetrievedStream、ブール値probeRead)

内部例外:既存の接続は、System.Net.Sockets.NetworkStream.Read(Byte []バッファ、Int32オフセット、Int32サイズ)

4

1 に答える 1

1

属性を使用してデータオブジェクトをマークします[DataContract(IsReference = true)]。これで問題が解決するはずです。

于 2012-11-06T03:33:41.743 に答える