2011-02-10 2 views
3

OpenRasta에서 코덱 uri 파일 확장명을 사용하면 OR이 uri를 해결하지 못하고 404를 반환합니다. 파일 확장자가 없으면 모두 작동합니다.OpenRasta에서 코덱 파일 확장명 사용 404

코덱이 개체 리소스에 대해 정의되어 있으며 XmlDataContract와 JsonDataContract를 모두 사용하고 있습니다. .xml 또는 .json 확장 기능을 사용하지 않으면 InMemoryHost (우리가 테스트에 사용하는)와 ASP.Net (IIS7, 통합 모드) 모두를위한 것입니다.

코덱 구성 :

ResourceSpace.Has.ResourcesOfType<object>() 
       .WithoutUri 
       .AsXmlDataContract() 
       .And.AsJsonDataContract(); 

가 URI 파일 확장자 작동하도록 할 필요가 무엇인가?

답변

4

.xml, .json 기능을 노출하려면 OpenRasta에서 ContentTypeExtensionUriDecorator를 UriDecorator로 등록해야합니다.

예는 HTTP 요청 할 수 있도록해야합니다 아래 :

GET 이것은

public class RastaConfig : IConfigurationSource 
{ 
    public void Configure() 
    { 
     using(OpenRastaConfiguration.Manual) 
     { 
      ResourceSpace.Uses.UriDecorator<ContentTypeExtensionUriDecorator>(); 

      ResourceSpace.Has.ResourceOfType<Home>() 
       .AtUri("/home") 
       .HandledBy<HomeHandler>() 
       .AsXmlDataContract() 
       .And.AsJsonDataContract(); 
     } 
    } 
} 

GET의 /home.xml

/home.json을 noramlly 때문에 클라이언트는 HTTP 수락 헤더를 추가하여 지원하고 관심있는 콘텐츠 형식을 정의합니다.

자세한 내용은 웹에서 내용 협상 (종종 conneg라고 함)에 대해 읽을 수 있습니다.

OpenRasta는 HTTP 수락 헤더에서 클라이언트의 기본 설정을 기반으로 반환 컨텐트 유형을 선택합니다.

희망이 도움이됩니다.

+0

감사합니다. 우리는 이미 테스트에서 Accept 헤더를 사용하고 있었지만 파일 확장자에 대한 지원을 추가하려고했습니다. – Shane22