인증을 양식하는 가상 디렉토리에 WCF 서비스를 노출하려면 어떻게해야합니까?

StackOverflow https://stackoverflow.com/questions/2223033

문제

내 그룹은 내부 호스팅 ASP.NET MVC 웹 사이트를 형태로 인증 한 것으로 구축합니다.

ASP.NET MVC 웹 사이트와 동일한 가상 디렉토리에서 WCF 서비스를 호스팅하고 싶습니다.

내 질문:

WCF 서비스를 자유롭게 액세스 할 수 있도록하려면 어떻게해야합니까? 없이형태 증명.

내 현재의 곤경은 다음과 같습니다.

  • .SVC에 액세스하고 웹 브라우저를 사용하여 Forms-Authentication을 처음 인증하면 WSDL 정보를 볼 수 있습니다.
  • 그러나 wcftestclient.exe를 사용하여 WCF 서비스에 액세스하려고하면 다음과 같은 오류가 발생합니다.

오류 : 메타 데이터를 얻을 수 없습니다 http : //localhost/services/myservice.svc이것이 액세스 할 수있는 Windows (R) Communication Foundation Service 인 경우 지정된 주소에서 메타 데이터 게시를 활성화했는지 확인하십시오. 메타 데이터 게시를 활성화하려면 MSDN 문서를 참조하십시오. http://go.microsoft.com/fwlink/?linkid=65455.ws-metadata교환 오류

도움이 되었습니까?

해결책 3

이 질문에 답하려고했던 모든 분들께 감사드립니다.

후에 시간 이 문제를 해결하기 위해 사용자 정의 인증 모듈이 내 클라이언트 시도가 메타 데이터를 얻으려는 시도를 거부하고 있음을 발견했습니다. 말하자면, 나는이 논리를 중심으로 길을 가야했다.

오 - 코드를 밟는 것은 매우입니다 과소 평가. ;)

다른 팁

당신은 있습니다 mex endpoint 서비스를 위해 web.config에 정의 되었습니까? 시험 클리어가 이것을 찾고있을 것입니다.

그렇다면 다른 가능성은 서비스 폴더에서 승인을 비활성화하는 것입니다. 나는 이것을 테스트 한 적이 없지만 이론적으로는 효과가있을 수 있습니다 ...

웹 사이트라면 localhost, WCF 서비스를 넣으십시오 localhost/services/myservice.svc 또는 같은. 그런 다음 web.config를 추가하십시오 /services 승인을 무시하고 모든 것을 허용하는 폴더.

<configuration>
   <authorization>
      <allow users="*" />
   </authorization>
</configuration>

.SVC 파일을 가상 디렉토리의 하위 폴더에 넣을 수 있다면 다른 수준의 승인으로 액세스 할 수 있도록 양식 인증의 속성. 다음은 튜토리얼입니다.

가상 디렉토리가 IIS에서 익명 액세스를 위해 구성되어 있음을 양식 인증을 사용하고 있기 때문에 가정합니다. 이 말을 통해 WCF 서비스 예를 들어, *.SVC 파일을 자체 디렉토리에 배치하면 기본 Web.Config 파일을 업데이트하고 위치 태그를 추가하여 서비스가 포함 된 디렉토리의 양식 인증을 비활성화 할 수 있습니다. 또한 web.config 's의 WCF 구성 바인딩 설정을 통해 보안을 해소하십시오. <system.servicemodel> 아직없는 경우 추가 해야하는 섹션 :

<bindings>
  <wsHttpBinding>   <!-- one of many possible bindings -->
    <binding name="...">          
      <security mode="None"> <-- allows anonymous access -->
        <message clientCredentialType="None"/> <-- allows anonymous access -->
      </security>
    </binding>
  </wsHttpBinding>
</bindings>
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top