2014-03-28 2 views
0

Agressiv 경우에는 유감이지만 3 일 연속 WCF가 작업 시간을 소모하기 때문에 창 밖으로 컴퓨터를 던지기가 쉽습니다.WCF 메타 데이터가 변경되지 않고 깨졌습니다.

저는 오늘 아침에 간단한 WCF 서비스를 만들었습니다. 비주얼 스튜디오에서 시작하여 WCF 서비스 호스트에서 호스팅 할 수 있었으므로 3 가지 프로젝트에서 실행되는 동안 서비스 참조로 포함시킬 수있었습니다. 콘솔 응용 프로그램에서 호스트 할 수 있으며 클라이언트가 연결할 수 있습니다.

이제는 또 다른 프로젝트에서 Servicereference가 필요하지만 더 이상 WCF 서비스 호스트에서 wcf를 호스팅 할 수 없습니다. 그것은 나에게 말한다 :

마이크로 소프트 WCF-Diensthost

데르 WCF-Diensthost kann의 keine Dienstmetadaten FINDEN. Danny Kunzu Nicht ordnungsgemäßer> 고객 지원 프로그램에 참여하십시오. 메타 데이트 활동을 시작합니다. 마호트니 보글 란드 막?

응 NEIN

Google 번역 :

마이크로 소프트 WCF 서비스 호스트

WCF 서비스 호스트가 모든 서비스 메타 데이터를 찾을 수 없습니다. 이로 인해 클라이언트 응용 프로그램이 올바로 실행되지 않을 수 있습니다 ( ). 메타 데이터가 사용 가능한지 확인하십시오. 종료 하시겠습니까?

예 아니요 WCF 구현의 인터페이스 또는 설정에 변화

이 없었다. 콘솔 앱에서 계속 호스팅 할 수 있지만 더 이상 서비스 참조를받을 수 없습니다. 구성은 이것이다 :

<?xml version="1.0" encoding="utf-8" ?> 
<configuration> 

    <system.web> 
    <compilation debug="true" /> 
    </system.web> 
    <!-- Bei der Bereitstellung des Dienstbibliothekprojekts muss der Inhalt der Konfigurationsdatei der app.config-Datei 
    des Hosts hinzugefügt werden. System.Configuration unterstützt keine Konfigurationsdateien für Bibliotheken. --> 
    <system.serviceModel> 
    <services> 
     <service behaviorConfiguration="WcfHost.Service1Behavior" name="WcfHost.Service1"> 
     <endpoint address="" binding="netTcpBinding" bindingConfiguration="" 
      contract="WcfHost.IWcfInfoHost"> 
      <identity> 
      <dns value="localhost" /> 
      </identity> 
     </endpoint> 
     <endpoint address="mex" binding="mexTcpBinding" bindingConfiguration="" 
      contract="IMetadataExchange" /> 
     <host> 
      <baseAddresses> 
      <add baseAddress="net.tcp://localhost:8732/InfoHost/Service1/" /> 
      </baseAddresses> 
     </host> 
     </service> 
    </services> 
    <behaviors> 
     <serviceBehaviors> 
     <behavior name="WcfHost.Service1Behavior"> 
      <serviceMetadata httpGetEnabled="false" /> 
      <serviceDebug includeExceptionDetailInFaults="false" /> 
     </behavior> 
     </serviceBehaviors> 
    </behaviors> 
    </system.serviceModel> 

</configuration> 

어떻게 변경없이이 BEAK?

답변

0

나는 그것을 이해했다. 나는 프로젝트가 변하지 않았다는 것이 틀렸다. 인터페이스 구현의 클래스 이름을 변경했습니다.

<service behaviorConfiguration="WcfHost.Service1Behavior" name="WcfHost.Service1"> 

은 더 이상 올바르지 않습니다.

하지만 VS 리팩토링 도구가 app.conf를 변경할 수 없으며 errormassage가 실제 오류와 관련이 없다는 것이 가장 혼란 스럽습니다. WCF는 나를 울게 만든다.

0

당신의 web.config 파일에 serviceMetaData 섹션을 확인하십시오 : -

 <serviceBehaviors> 
     <behavior name="WcfHost.Service1Behavior"> 
      <serviceMetadata httpGetEnabled="false" /> 
      <serviceDebug includeExceptionDetailInFaults="false" /> 
     </behavior> 
     </serviceBehaviors> 

그냥

를 참조하십시오 serviceMetadata httpGetEnabled = "true"로 설정 serviceMetadata httpGetEnabled = "거짓" https://social.technet.microsoft.com/wiki/contents/articles/1298.exposing-a-metadata-exchange-mex-endpoint-over-tcp-with-an-iis-hosted-wcf-service.aspx 문제가 해결됩니다.

+0

TCP 연결을 위해 HTTP를 켜야합니까? – Lorgarn

+0

제 편집을 참조하십시오. – ajaysinghdav10d

+0

이것은 IIS와 아무 관련이 없습니다. 내 대답을 엿 듣고. – Lorgarn

관련 문제