2013-06-20 5 views
1

이 오류가있어 지원하지 않습니다WS-Metadata Exchange를 사용하여 'net.pipe : //localhost/abc.svc'에서 메타 데이터를 다운로드하려고합니다. 이 URL는 svcutil으로 프록시를 생성하는 동안 DISCO

"Attempting to download metadata from 'net.pipe://localhost/abc.svc' using WS-Metadata Exchange. This URL does not support DISCO." 

이 서비스는 이전 http와 함께 잘 작동 오류 &없이 컴파일됩니다. 생성 된 wsdl도 svcutil로 프록시를 생성하는 동안 오류가 있더라도 net.pipe에 문제없이 잘 작동합니다.

새 파일 생성을 확인하기 위해 모든 이전 파일 &을 삭제 한 다음 svcutil을 사용하여 파일을 생성 한 다음 사용합니다. 그것은 동일한 오류를 제공하며 사용시 서비스를 사용하는 동안 문제가없는 파일을 생성합니다.

모든 것이 정상적으로 작동 할 때 왜이 오류가 발생하는지 궁금합니다.

+0

서비스에 대한 mex 끝점이 있습니까? ' – Tim

+0

@Tim, 내 mex 끝점은

답변

1

Pranav,

mex 끝점이 맞습니다. netNamedPipeBinding 또는 netTcpBinding을 사용할 때 서비스 및 IIS에서 일부 설정을해야합니다.

오류 메시지가 아닌 Hosting WCF service with netTcpBinding or netNamedPipeBinding in IIS

+0

과 비슷합니다. 그건 정말 유용한 기사 +1이었습니다. 시도했지만 오류가 멈추지 않습니다. 프록시 생성에 오류가 있지만 파일이 생성되고 사용 된 경우 의도 한대로 성공적으로 작동하지만 대부분의 버그는 무엇입니까? 왜 오류가 발생했는지 알고 싶습니다. –

0

를 참조하십시오. 나는 단지 정보, 심지어조차도 말하지 않을 것이다 ...

나는 다음과 같은 것을 가지고 net.pipe에서 svcutil을 실행하려고한다.

<service name="Service" ...> 
     <host> 
      <baseAddresses> 
      <add baseAddress="net.pipe://localhost/" /> 
      </baseAddresses> 
     </host> 
     <endpoint address="Service" 
        binding="netNamedPipeBinding" 
        contract="IService" /> 
     <endpoint address="Service/mex" 
        binding="mexNamedPipeBinding" 
        contract="IMetadataExchange" /> 
    </service> 
    ... 
    <serviceMetadata httpGetEnabled="False" /> 

는 svcutil는 같은 메시지를 줄 것이다 여전히 성공적으로

지금 당신이

<serviceMetadata httpGetEnabled="True" httpGetUrl="http://localhost:8182/Service/mex" /> 

에 serviceMetadata을 변경하고, 예를 들어 실행 파일을 생성 "DISCO을 지원하지 않습니다이 URL"

svcutil.exe /t:code /l:cpp /ser:Auto http://localhost:8182/Service/mex 

net.pipe에서 실행되는 것과 동일한 클라이언트 프록시 코드를 생성하지만 지금은 다음 출력이 있습니다 ...

Attempting to download metadata from 'http://localhost:8182/Service/mex' using WS-Metadata Exchange or DISCO.