4

私は私たちのサービスのためにAsp.netWebapiを作成しています。一方、既存のWCFサービスからいくつかのデータを取得する必要があります。

asp.netwebapiプロジェクトでWeb参照を作成しています。しかし、プロキシは生成されていないようです。

VS 2012 RCを試してから、VS2010を試してみました。プロジェクトのどこからでもモデル/コントローラーから参照できません。MVCwebapiでプロキシを作成する別の方法はありますか?何が悪いのかわかりません。

それは私が残りのサービスからwcfサービスを消費することができないような何かをする必要がありますか

私がここで行方不明になっているのは何ですか。

ありがとう。

4

2 に答える 2

3

非推奨のASP.NETWebサービス(ASMX)に使用されるWeb参照ではなく、サービス参照を追加してみてください。

これを試してみましたが、期待どおりに機能します。これが私がしたことです:

  1. 新しいASP.NETMVC4 Webアプリケーションを作成し、WebAPIプロジェクトテンプレートを選択しました。
  2. ソリューションにWCFサービスアプリケーションプロジェクトを追加しました。サービス参照を追加する前に、これを作成することを忘れないでください。
  3. Web APiプロジェクトで、WCFサービスへのサービス参照を追加しました。
  4. ValuesController.Get(int id)のコードを次のように置き換えました

    public string Get(int id)
    {
        var serviceReference1 = new ServiceReference1.Service1Client();
        return serviceReference1.GetData(id);
    }
    

ブラウジングするとき

http://localhost:<port>/api/values/2

私は受け取ります

<?xml version="1.0" encoding="utf-8"?><string>You entered: 2</string>
于 2012-07-11T10:43:32.087 に答える
1

サービス参照が追加されたが、reference.csが空で生成された場合は、タイプの競合に関する問題である可能性があります。次の回避策は私のために働いた。

これを修正するには、サービス参照を右クリックし、[サービス参照の構成]をクリックします。構成画面で、[参照されるアセンブリのタイプを再利用する]のチェックを外します。強制的に更新しない場合は、サービス参照を自動的に更新する必要があります。

これにより、reference.csファイルが適切に生成されます。

于 2014-08-06T06:20:33.080 に答える