私はWCFサービスを持っています。私はコンソールアプリケーションでサービスをホストしようとしています。IMetadataExchangeコンソールアプリケーションでWCFサービスをホストするときのMEXエンドポイントエラー
私はすべての指示に従っていますhere。
すべてコンパイルは正常ですが、実行時に例外が発生します。
サービス名Indexerによって実装された契約の一覧に契約名 'IMetadataExchange'が見つかりませんでした。この契約のサポートを有効にするには、ServiceMetadataBehaviorを構成ファイルまたはServiceHostに直接追加します。方向で今
、私は、私はどこにでも私のWCFサービスやホストのコンソールアプリケーションでIMetadataExchangeを持っていない
<endpoint binding="mexHttpBinding" bindingConfiguration=""
name="http://localhost:8080/myservice/MEX/" contract="IMetadataExchange" />
を追加するように指示しています。
例外はどこから来ましたか?私は行方不明の参照はありますか?
これは私のWCFサービスは、単に契約し、その後MYSERVICEクラスの実装とのインタフェースを持っている
namespace WcfConsoleHost
{
class Program
{
static void Main(string[] args)
{
Type type = typeof(myservice);
using (ServiceHost host = new ServiceHost(type))
{
host.Open();
Console.WriteLine("The service is available. Press any key...");
Console.ReadKey();
host.Close();
}
}
}
}
私のコンソールプログラムです。
以下は私のapp.config全体です。
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<system.serviceModel>
<behaviors>
<serviceBehaviors>
<behavior name="ServiceBehavior">
<serviceMetadata />
</behavior>
</serviceBehaviors>
</behaviors>
<services>
<service name="myservice">
<endpoint address="http://localhost:8080/myservice/"
binding="basicHttpBinding"
bindingConfiguration="" contract="myservice.Ims" />
<endpoint binding="mexHttpBinding" bindingConfiguration=""
address="http://localhost:8080/myservice/MEX/"
contract="IMetadataExchange" />
</service>
</services>
</system.serviceModel>
</configuration>
私はそれを修正しました!また、実際には behaviorConfiguration = "IndexerServiceBehavior"がサービスタグから見つからなかったと思います。 – Matt