2011-02-10 3 views
3

OpenRastaでcodec uriファイル拡張子を使用すると、ORによってuriが解決されず、404が返されます。ファイル拡張子がないとすべて正常に動作します。OpenRastaでのコーデックファイル拡張子の使用404

コーデックはオブジェクトリソース用に定義されており、XmlDataContractとJsonDataContractの両方を使用しています。 .xmlまたは.json拡張機能を使用しないで、これはInMemoryHost(テスト用に使用しています)とASP.Net(IIS7、統合モード)の両方に適用されます。

コーデックの設定:

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

は、URIファイル拡張子を動作させるために行われる必要がある何か他のものはありますか?

答えて

4

OpenTypeでContentTypeExtensionUriDecoratorをOpenRastaのUriDecoratorとして登録する必要があります。これにより、.xml、.jsonの機能性が公開されます。これが原因noramllyある

GETの/home.json

GETの/home.xml

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(); 
     } 
    } 
} 

例下記のザ・あなたはへのHTTP要求を作成できるようにする必要がありますクライアントは、HTTP Acceptヘッダーを追加して、サポートしているコンテンツタイプを定義します。

詳しくは、ウェブ上のコンテンツネゴシエーション(コネクションと呼ばれることもあります)を読むことができます。

OpenRastaは、HTTP Acceptヘッダーのクライアントのプリファレンスに基づいて返されるコンテンツの種類を選択します。

これが役に立ちます。

+0

ありがとうScott。私たちは既にテストでAcceptヘッダーを使用していましたが、ファイル拡張子のサポートを追加したかったのです。 – Shane22

関連する問題