1

IIS 6 (Windows XP) でホストされる WCF サービスを作成しました。

<system.serviceModel>        
    <behaviors>
      <serviceBehaviors>
        <behavior name="myServiceBehaviors">          
          <serviceMetadata httpGetEnabled="true"/>          
          <serviceDebug includeExceptionDetailInFaults="false"/>
        </behavior>
      </serviceBehaviors>
    </behaviors>    
    <services>
      <service name="Namespace.Class" behaviorConfiguration="myServiceBehaviors">                
        <endpoint  contract="IMetadataExchange" binding="mexHttpBinding" address="mex" />        
      </service>      
    </services>        
    <serviceHostingEnvironment multipleSiteBindingsEnabled="true" />
  </system.serviceModel>      

Visual Studio 2010 で仮想ディレクトリ (MyVirtualFolder) を作成しました。ブラウザーで "http://localhost/MyVirtualFolder/MyService.svc" にアクセスすると、metadataExchange のインターフェイスをオンにする必要があることを示すエラー ページが表示されます。それを行い、構成ファイルをどのように変更するか。私はそれを再確認しましたが、私の設定はhtmlページによって提案されたものと同じです。

IMetaDataExchange インターフェイスが利用できないのはなぜですか?

前もって感謝します!

4

3 に答える 3

0

<serviceMetadata />の代わりに試してください<serviceMetadata httpGetEnabled="true"/>
IIS で Web サービスをホストしている場合は、*.svc ファイルがあります。メタデータを取得し、エンドポイントを削除するためにエンドポイントは必要ありません。すべて正常に機能します。

于 2011-07-06T07:57:01.727 に答える
0

エンドポイントから削除address="mex"します。IMetadataExchange

また、サービス自体の実際のエンドポイントはありません。

可能であれば、WCF 構成エディター (Windows SDK の一部) であるSvcConfigEditorを使用して、動作するサービスとクライアント構成を取得してみてください。

于 2011-07-06T08:00:52.063 に答える
0

最後に、私はその理由が何であるかを知りました:

<service name="Namespace.Class">間違ったクラスを指していました:(

于 2011-07-06T13:22:44.280 に答える