WCF 서비스가 있습니다. 콘솔 응용 프로그램에서 서비스를 호스팅하려고합니다.콘솔 응용 프로그램에서 WCF 서비스를 호스팅 할 때 IMetadataExchange MEX 끝점 오류가 발생했습니다.
모든 지시 사항을 따르고 있습니다. here.
이제는 모든 것이 잘 컴파일되지만 런타임에 예외가 발생합니다.
는, 나는서비스 인덱서가 구현 한 계약 목록에서 계약 이름 'IMetadataExchange'을 (를) 찾을 수 없습니다. 이 계약에 대한 지원을 사용하려면 ServiceMetadataBehavior를 구성 파일이나 ServiceHost에 직접 추가하십시오. 방향으로 지금
<endpoint binding="mexHttpBinding" bindingConfiguration=""
name="http://localhost:8080/myservice/MEX/" contract="IMetadataExchange" />
내가 내 WCF 서비스 나 호스트 콘솔 응용 프로그램에서 어디 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>
나는 그것을 고쳤다! 또한 나는 실제로 그것이 behiquation = "IndexerServiceBehavior"서비스 태그에서 누락되었다고 생각합니다. – Matt