와일드 카드 매핑을 사용할 때 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에서 서비스를 검색 할 수 있습니다.
이 작업을 수행하기 위해 취한 조치에 대한 설명은 도움이 될 것입니다. 감사합니다. – robyaw
IIS를 열고 웹 사이트를 선택한 다음 "처리기 매핑"을 선택하십시오. – Tchami