0

오류WCF의 WebService에 오류

Error: Cannot obtain Metadata from localhost:81/WebServices/Legacy.svc If this is a Windows (R) Communication Foundation service to which you have access, please check that you have enabled metadata publishing at the specified address. For help enabling metadata publishing, please refer to the MSDN documentation at http://go.microsoft.com/fwlink/?LinkId=65455.WS-Metadata Exchange Error URI: localhost:81/WebServices/Legacy.svc Metadata contains a reference that cannot be resolved: 'localhost:81/WebServices/Legacy.svc'.

내있는 Web.Config

<system.serviceModel> 
    <services> 
     <service name="Web.WebServices.Legacy" behaviorConfiguration="serviceBehaviorsZero"> 
      <endpoint address="" 
         name="SspService" 
         binding="basicHttpBinding" 
         bindingConfiguration="basicHttpBindingZero" 
         contract="Web.WebServices.ILegacy" /> 

      <endpoint address="mex" binding="mexHttpsBinding" contract="IMetadataExchange" /> 
     </service> 
    </services> 
    <bindings> 
     <basicHttpBinding> 
      <binding name="basicHttpBindingZero"> 
       <security mode="None"> 
       </security> 
      </binding> 
     </basicHttpBinding> 

    </bindings> 
    <behaviors> 
     <serviceBehaviors> 
      <behavior name="serviceBehaviorsZero"> 
       <serviceMetadata httpGetEnabled="true" httpsGetEnabled="true" /> 
       <serviceDebug includeExceptionDetailInFaults="false" /> 
      </behavior> 
     </serviceBehaviors> 
    </behaviors> 
    <serviceHostingEnvironment aspNetCompatibilityEnabled="true" multipleSiteBindingsEnabled="true" /> 
</system.serviceModel> 

WCF 테스트 클라이언트를 사용하여 내 웹 서비스에 액세스 할 수 없습니다?

내가 URL localhost를 통해 ACESS : 81/웹 서비스/Legacy.svc 나는이 오류 파일 이름, 디렉터리 이름 또는 볼륨 레이블 구문이 잘못되었습니다 얻을 브라우저 에.

업데이트 : 내 SVC는 파일의 코드

<%@ ServiceHost Language="C#" Debug="true" Service="Web.WebServices.Legacy" CodeBehind="Legacy.svc.cs" %> 

[ServiceBehavior(AddressFilterMode = AddressFilterMode.Any)] 
    public class Legacy : ILegacy 
    { 
     public string DoWork() 
     { 
      return "https"; 
     } 
    } 
+0

.svc 파일의 내용을 표시 할 수 있습니까? – Chris

+0

당신은'mexHttpsBinding'을 가지고 있습니다 - 이것을'mexHttpBinding'으로 바꾸거나, 테스트 클라이언트를 로컬 HTTPS 끝점을 가리 키도록 변경하십시오. – StuartLC

+0

@ 크리스 : 마크 업 : <% @ ServiceHost를 언어 = "C#을"디버그 = "true"를 서비스 = "MvcApplication4.WS.Service1"숨김 = "Service1.svc.cs"%> C# 코드 : 네임 스페이스 웹 .WebServices { [ServiceBehavior (AddressFilterMode = AddressFilterMode.Any)] 공용 클래스 레거시 : ILegacy { 공용 문자열 DoWork() { return "OK"; } } } –

답변

0
  1. 웹 사이트 디렉토리 (hello.html)에 단순한 파일을 넣어

    하고 연결할 수 있는지 확인 (인 HelloWorld.html)

    안녕하세요 안녕하세요!

작동하지 않는 경우 - IIS에 당신의 바인딩 설정을 확인하고 서비스 여부 및 그 응용 프로그램 풀의이 켜져 있습니다.

  1. IIS 구성에서 '기능보기'를 선택하고 '디렉토리 찾아보기'+ 활성화로 이동하십시오.
  2. 넣어 끝 : ... svc? wsdl
  3. 먼저 자신의 로컬 환경을 확인하십시오. 모든 것이 잘되면 웹에서 확인할 수 있습니다.
  4. Visual Studio에서 새 웹 사이트 (새 폴더)를 만들고 웹 사이트 (web.config 포함)에 결과를 복사하여 기본 작업을 수행해야합니다. 기본 소스 코드가 있습니다. 서비스에 새로운 기능을 추가 할 수 있습니다 (예 : helloworld, 문자열을 반환하고 iservices에서 참조). svc 파일이 만들어지지 않은 경우 (이전 버전) - 사용자가 직접 텍스트 파일을 만들고 svc 파일을 수정하기 위해 copy + paste를 수행 할 수 있습니다. 웹 사이트에서 app_code 및 app_data 폴더가 있어야합니다.

도움이 되길 바랍니다. 행운을 빌어 요 !!!