0

私はwcfを学んでいます。だから私はwcfプロジェクトを作成し、それには1つのクラスがあります。次のようなコード

namespace TestWcfService1
{
// NOTE: You can use the "Rename" command on the "Refactor" menu to change the class name "Service1" in code, svc and config file together.
public class Service1 : IService1
{
    public string GetData(string value)
    {
        return string.Format("You entered: {0}", "Welcome " + value);
    }

}
}

今、サービス参照を追加するようなコンソール アプリに wcf サービス参照を追加しようとすると、http://localhost:21541/Service1.svcのようなサービス URL を追加しようとすると、メタデータに解決できない参照が含まれているというエラーが表示されます: 「http://localhost:21541/Service1.svc」。

だから私は自分の目標を達成することができません。私は何かが欠けている場所を知っているので、エラーが発生しています。コンソールアプリにサービス参照を追加する方法を教えてください。app.config は自動的に更新されますか、そこに何かを書き込む必要がありますか。助けてください。ありがとう

4

2 に答える 2

0

ソリューションに WCF サービス プロジェクトがある場合は、コンソール アプリケーションを右クリックし、「サービス参照の追加」と言ってから、[検出] ボタンをクリックすると、それが表示されます。
はい、構成ファイルは動作やエンドポイントなどで更新する必要があります。

見てください: WCF メタデータには、解決できない参照が含まれています

于 2012-10-25T19:35:02.867 に答える
0

構成で、サービスのメタデータを許可するようにサービスの動作が設定されていることを再確認します。

<serviceMetadata httpGetEnabled="true"/>

サービスセクションにメタデータエンドポイントを追加します

<endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange"/>

編集: 構成例

<system.serviceModel>
  <services>
    <service behaviorConfiguration="BehaviorConfig"
      name="[ServiceNameGoesHere]">
      <endpoint address="" binding="wsHttpBinding" contract="[ServiceContractHere]">
      </endpoint>
      <endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" />
    </service>
  </services>
  <behaviors>
    <serviceBehaviors>
      <behavior name="BehaviorConfig">
        <serviceMetadata httpGetEnabled="True"/>
        <!-- To receive exception details in faults for debugging purposes, 
        set the value below to true.  Set to false before deployment 
        to avoid disclosing exception information -->
        <serviceDebug includeExceptionDetailInFaults="False" />
      </behavior>
    </serviceBehaviors>
  </behaviors>
</system.serviceModel>

WCF メタデータと呼ばれる Dan Rigsby のブログに、MEX エンドポイント (サービス参照の追加が機能するために必要な) の設定について詳しく説明している非常に優れた記事があります。

于 2012-10-25T19:37:57.470 に答える