1

.NETFramework4.5を使用しています。CompositeTypeを使用した例がすでにある新しいプロジェクトWCFを作成しました。次に、コンソールとASP.NETMVC4アプリケーションを作成しました。両方のプロジェクトにサービスリファレンスをさらに追加しました。プロジェクトでASP.NETMVC4が(参照で)空のクラスを生成したのはなぜですか?サービスインターフェイスでCompositeTypeを削除すると、すべて問題ありません。コンソールアプリケーションでは、そのような問題はなく、すべてが正しく作成されます。

4

1 に答える 1

0

これは VS 2012 の既知の問題です。修正が利用可能になる前に、次の回避策を使用して問題を解決できます。このブログをチェックしてください。

http://blogs.msdn.com/b/praburaj/archive/2012/08/23/add-service-reference-adding-empty-reference-cs-in-mvc-4-projects-of-vs-2012. aspx

VS 2012 MVC 4 プロジェクトで、[サービス参照の追加] ダイアログを使用して WCF サービスにサービス参照を追加しているときに、空の reference.cs ファイルが見つかりましたか?

これについてあなたができることは次のとおりです。

エラータブに次のようなエラーが表示されているかどうかを確認してください...

警告 1 カスタム ツールの警告: wsdl:portType をインポートできません

詳細: WSDL インポート拡張機能の実行中に例外がスローされました: System.ServiceModel.Description.DataContractSerializerMessageContractImporter

エラー: タイプ 'Newtonsoft.Json.Linq.JToken' は、サポートされていない再帰的なコレクション データ コントラクトです。コレクション「Newtonsoft.Json.Linq.JToken」の定義を変更して、それ自体への参照を削除することを検討してください。

エラー ソースへの XPath: //wsdl:definitions[@targetNamespace='http://tempuri.org/']/wsdl:portType[@name='IService1']

その場合は、次の回避策を使用できます。

  1. サービス参照の追加ダイアログで -> [詳細...] -> 参照されたアセンブリで型を再利用する (デフォルトでオン) -> デフォルトではない「指定された参照されたアセンブリで型を再利用する」ラジオを選択します -> Newtonsoft.Json を除外していることを確認してください。 dll をリストから選択します。今すぐサービス参照を追加してみて、成功することを確認してください。

  2. または、プロキシの生成中にこの Newtonsoft.Json.dll の参照を削除し、プロキシの生成が完了した後に追加することもできます。

于 2012-11-14T16:27:47.270 に答える