2012-01-09 6 views
3

Svcutil을 사용하여 로컬 호스트 서비스에서 프록시 생성을위한 메타 데이터를 내보내려고합니다. 이것이 나의 부분에 학습 운동이기 때문에 내가 비주얼 스튜디오로 가서 '서비스 참조 추가'를 클릭합니다 해달라고 다음과 같이 내가는 svcutil을 사용하고svcutil을 사용하여 클라이언트 프록시 용 xsd 파일 생성

(!) :

는 svcutil/D : C : \ TEMP/t : 메타 데이터 이것은 두 개의 WSDL 파일, calculatorservice.wsdl 및 tempuri.org.wsdl를 생성 http://localhost/IISCalculatorService/service.svc

. 그러나 나는 그것도 두. XSD 파일을 생성 할 것으로 예상했다. 이러한 .XSD 파일이 없으면 svcutil을 사용하여 클라이언트 코드를 생성 할 수 없습니다.

svcutil을 사용하는 중에 뭔가가 누락되었거나 내 말투로 넘어 간다는 건가요? 어떤 도움을 주셔서 감사합니다.

여기 XSD 파일을 생성하는 서비스의 web.config

<?xml version="1.0"?> 
<configuration> 
    <system.web> 
     <compilation debug="true" targetFramework="4.0"/> 
    </system.web> 
    <system.serviceModel> 
     <behaviors> 
      <serviceBehaviors> 
       <behavior> 
      <serviceMetadata httpGetEnabled="true"/> 
        <serviceDebug includeExceptionDetailInFaults="false"/> 
       </behavior> 
      </serviceBehaviors> 
     </behaviors> 
     <serviceHostingEnvironment multipleSiteBindingsEnabled="true"/> 
     <services> 
      <service name="CalculatorService.Calculator"> 
       <endpoint address="" binding="basicHttpBinding" contract="CalculatorService.Contracts.ICalculator" /> 
     <endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" /> 
      </service> 
     </services> 
    </system.serviceModel> 
    <system.webServer> 
     <modules runAllManagedModulesForAllRequests="true"/> 
    </system.webServer> 
</configuration> 
+1

svcutil 을 사용하여 프록시를 생성 한 다음 서비스 참조 추가를 통해 프록시를 수행하지 않으려는 경우 프로젝트에서 프록시를 사용할 수 있습니다. wsdl과 관련된 xsd의 무언가를 검증하려면 wsdl의 지정된 URL에서 다운로드하여 프로젝트에 추가하면됩니다. – Rajesh

답변

3

, 당신이 당신을하는 데 도움이

svcutil.exe http://localhost/IISCalculatorService/service.svc?wsdl 

희망을 시도 할 수 있습니다.

+0

고마워, 이것을 시도하고 svcutil에서 "... 메타 데이터 문서에 유효한 계약이나 서비스가 없습니다 ...."라는 오류가 표시됩니다. – SkeetJon

+0

http : //localhost/IISCalculatorService/service.svc 및 http : IE의 //localhost/IISCalculatorService/service.svc?wsdl? 서비스 호스팅과 관련하여 문제가있을 수 있습니다. –

+0

예, 괜찮습니다. 서비스가 svcutil/wsdl에 필요한 정보를 보도록하지 않았다고 생각 했었습니까? – SkeetJon

4

사용 disco.exe을합니다. http://msdn.microsoft.com/en-us/library/cy2a3ybs%28v=vs.80%29.aspx

Visual Studio를 열고 명령 프롬프트 및 쓰기 직접 서비스 참조를 찾고 있다면 디스코 http://localhost/IISCalculatorService/service.svc

+0

감사합니다. 그러면 calculator.wsdl, services.disco, service.wsdl 및 results.discomap이 생성됩니다. (.xsd 파일 없음) MSDN 링크는 wsdl.exe를 사용하여 클라이언트 코드를 생성하도록 제안합니다. 즉 .XSD는 svcutil을 공급하는 데 필요하지 않습니까? – SkeetJon

+0

web.config에서 서비스가 잘못 설정되었을 수 있습니까? – SkeetJon

+0

달성하고자하는 목표는 무엇입니까? C# 프록시를 호출하고 VS에서 서비스 추가 참조를 사용하지 않으려면 svcutil http : //localhost/IISCalculatorService/service.svc – KMan