2010-12-07 1 views
1

와일드 카드 매핑을 사용할 때 IIS6에서 WCF 메서드를 실행할 때 404가 표시됩니다.WCF + 와일드 카드 매핑 + IIS6 = 모든 메서드에서 404s!

VS2008 (새 프로젝트> WCF 서비스 응용 프로그램)에서 새 WCF 서비스를 만들면이 모든 것을 재현 할 수 있습니다. dummy 메소드 ('GetData')로 이동하면 ... WCF로 전달 중임을 보여주기 때문에 400을 반환한다는 것을 알 수 있습니다.

그러나 IIS6에서 와일드 카드 매핑을 사용하면 WCF가 요청을 더 이상 가로 채지 않는 404를 얻게됩니다. 다음의 Web.config와

[ServiceContract] 
public interface IRest { 
    [OperationContract] 
    [WebGet(UriTemplate = "/test")] 
    int Test(); 
} 

: 다음과 같이

내 코드는

<system.serviceModel> 
    <behaviors> 
    <endpointBehaviors> 
     <behavior name="ServiceX.RestBehavior"> 
     <webHttp /> 
     </behavior> 
    </endpointBehaviors> 
    <serviceBehaviors> 
     <behavior name="ServiceX.RestBehavior"> 
     <serviceMetadata httpGetEnabled="false" /> 
     <serviceDebug includeExceptionDetailInFaults="true" /> 
     </behavior> 
    </serviceBehaviors> 
    </behaviors> 

    <serviceHostingEnvironment aspNetCompatibilityEnabled="false" /> 

    <services> 
    <service behaviorConfiguration="ServiceX.RestBehavior" 
     name="ServiceX.Rest"> 
     <endpoint address="" behaviorConfiguration="ServiceX.RestBehavior" 
     binding="webHttpBinding" contract="ServiceX.IRest" /> 
    </service> 
    </services> 
</system.serviceModel> 

모든 와일드 카드 매핑없이 잘 작동; '/services/rest.svc/test'로 이동하면 예상 결과가 나타납니다.

그러나 와일드 카드 매핑 (. *> C : \ WINDOWS \ Microsoft.NET \ Framework \ v2.0.50727 \ aspnet_isapi.dll)을 사용하는 즉시 메서드에 액세스하려고하면 404가 수신됩니다. 나는 여전히 '/services/rest.svc'를 볼 수는 있지만).

나는

내가 http://someurl/service.svc에서 서비스를 검색 할 수 있습니다.

답변

3

난 그냥 WCF 서비스가 IIS6에서 실행과 같은 문제가 있었다 구글과 StackOverflow의를 :(소진했습니다,하지만 난 404 때를 얻을 것 http://someurl/service.svc/somemethod과 같은 서비스의 메서드를 누르십시오.

내 경우 수정이 쉽습니다 .svc 파일 형식이 IIS에서 C : \ Windows \ Microsoft.NET \ Framework \ v2에서 처리되도록 구성되었습니다. 0.50727 \ aspnet_isapi.dll,하지만 내 서비스는 ASP.NET v4.0 apppool에서 실행 중이므로 .svc 파일 유형을 가리켰습니다. t C : \ Windows \ Microsoft.NET \ Framework \ v4.0.30319 \ aspnet_isapi.dll

+0

이 작업을 수행하기 위해 취한 조치에 대한 설명은 도움이 될 것입니다. 감사합니다. – robyaw

+0

IIS를 열고 웹 사이트를 선택한 다음 "처리기 매핑"을 선택하십시오. – Tchami