11

ルート'/'にRestPathを設定しようとしていますが、設定できません。そのことわざRestPath '/' on Type 'MainTasks' is not Valid

これを許可する方法はありますか?ルートからリソースを提供したいのですが。

[Route("/", "GET")]
public class MainTasks : IReturn<MainTasksResponse>
{
}
4

3 に答える 3

9

/ServiceStackのルートパスFallbackRouteとのみ一致させることができます。例:

[FallbackRoute("/{Path*}")]
public class Fallback
{
    public string Path { get; set; }
}

これは、ワイルドカードを使用して、一致しないすべてのルート(/ foo / barを含む)を処理します。1つのフォールバックルートのみが許可されます。

デフォルトのルートパスを処理する他の方法もいくつかあります/:

  1. を変更してEndpointHostConfig.DefaultRedirectPath、使用するサービスにリダイレクトします
  2. default.cshtmlRazorまたはMarkdownViewまたはstatic default.htm(HTMLリクエストの場合)を追加します
  3. 登録a-これは、 ServiceStackの操作の順序EndpointHostConfig.RawHttpHandlersで最初に確認されるハンドラーです。
  4. 登録a-これは、一致しないIAppHost.CatchAllHandlers要求に対して呼び出されます。
  5. グローバルリクエストフィルターでリクエストを処理する
于 2012-11-20T20:21:26.727 に答える
9

これは私のために働いた。RawHttpHandlerを追加し、リクエストパスを書き直しました。チャンピオンのように働いた。(これは私のAppHostのConfigure関数にあります。)

var conf = new EndpointHostConfig();
{
    DefaultRedirectPath = "/foo",
    AllowFileExtensions = { { "eot" }, { "svg" }, { "ttf" }, { "woff" } },
};

conf.RawHttpHandlers.Add(r =>
{
    if (r.RawUrl == "/")
    {
        HttpContext.Current.RewritePath(conf.DefaultRedirectPath);
    }

    return null;
});

this.SetConfig(conf);
于 2013-04-15T15:59:41.390 に答える
0

私はこれを試みていましたが、Christopher Daviesメソッドが、セルフホストサービスの最新のサービススタックで機能しなくなっていることがわかりました。パラメータをとらない私のサービスの以下は機能しました。

[FallbackRoute( "/")]

于 2014-03-06T10:35:58.340 に答える