2011-07-31 2 views
1

나는 (StackOverflow에 덕분에) 편안한 WCF 서비스를 만들었습니다. 테스트 클라이언트를 만들었습니다. 5 개의 텍스트 상자와 제출 버튼이있는 간단한 .aspx 페이지입니다. 텍스트 상자에 데이터를 입력하고 제출 버튼을 클릭하면 데이터 이 WCF 서비스에 제출됩니다.WCF 서비스 참조가 작동하지 않습니까?

내 WCF 서비스가 비주얼 스튜디오 개발 서버에서 실행되고 그것이 잘 작동, 나는 WCF 서비스에 성공적으로 데이터를 보낼 수 있어요. 오늘 저는이 로컬 WCF 서비스를 로컬 IIS에 배포했습니다. 클라이언트 응용 프로그램 (.aspx 페이지)에서 서비스 URL을 참조하려고 할 때이 오류가 발생합니다. .

는 "메타 데이터는 클라이언트와 서비스 바인딩이 일치 될 수 있습니다 확인할 수없는 참조를 포함하는 메시지를 처리 ​​할 수 ​​없습니다 때문에 콘텐츠 형식 '응용 프로그램/비누 + XML; 문자셋 = UTF-8'.이 아니었다 예상 유형 'text/xml;'

문제가 될 수있는 어떤 생각? 여기 내 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> 

     <services> 
      <service name="RESTService1"> 
      <endpoint address="http://localhost:420/WCFRESTService100/RESTService1.svc" binding="webHttpBinding" name="MainHttpPoint" contract="RESTService1" /> 
      <host> 
       <baseAddresses> 
       <add baseAddress="http://localhost:420/WCFRESTService100/RESTService1.svc" /> 
       </baseAddresses> 
      </host> 
      </service> 
     </services> 

     <!--<serviceHostingEnvironment multipleSiteBindingsEnabled="true"/>--> 
     </system.serviceModel> 
    <system.webServer> 
     <modules runAllManagedModulesForAllRequests="true" /> 
     </system.webServer> 

    </configuration> 

답변

1

나는이 문제가 REST 서비스를 위해 서비스 참조를 추가했다고 생각한다. REST 서비스에는 해당 메타 데이터를 설명하는 표준 메타 데이터 형식이 없으므로 사용 가능한 메타 데이터가 없습니다. 당신이 그것을 위해 SOAP 정의를 노출 서비스에 남아 있기 때문에

당신이 서비스 참조를 추가 할 수 있었던 유일한 이유입니다. 당신이 당신의 클라이언트 설정을 붙여 넣으면 그래서, 엔드 포인트는 SOAP 엔드 포인트 (있는 wsHttpBinding 또는은 BasicHttpBinding) 따라서 당신이 전화를 걸 때 마임 타입 불일치에 대한 오류를 얻을 이유가 확신합니다.

WCF를 사용하여 클라이언트에서 REST 서비스를 호출하려면 클라이언트와 서버간에 계약 정의를 공유하거나 클라이언트에서 완전히 복제해야합니다.

+0

하이 드류, 나는 당신의 대답을 이해하지 못했다. 서비스 참조를 추가했는지 여부 메타 데이터 참조를 추가하지 않았습니다. 내가 REST 서비스에 대한 SErvice 참조를 추가하지 않았다면. 가능한 한 당신이 나를 위해 하나를 제공 할 수 있습니까? 시간 내 주셔서 감사합니다 – Henry

+0

"서비스 참조 추가"기능은 SOAP 끝점 만 설명하는 WSDL을 노출하는 서비스에만 적용 할 수 있습니다. 이것을 REST 엔드 포인트와 함께 사용할 수 없습니다. 그래서, 만약 당신이 그렇게했다면, 당신의 클라이언트는 SOAP 엔드 포인트를 대신 추가하게됩니다. 당신이 당신을 붙여 넣는다면 그것은 문제인지 아닌지를 확인하는데 도움이 될 것입니다. –

+0

안녕하세요, 귀하의 회신을 보내 주셔서 감사합니다. 다음 15 분 안에 클라이언트 web.config를 제공 할 것입니다. – Henry