15

mvc4 プロジェクトでService Stackを実行しようとしています。nugetServiceStack.Host.Mvcパッケージは mvc 4.0 で動作しますか? インストールしroutes.IgnoreRoute("api/{*pathInfo}");てルーティング構成に追加しましたが、に行ってもルートが見つかりません

/api/metadata

エラーが表示されます:

要求 URI ' http://localhost:51681/api/metadata 'に一致する HTTP リソースが見つかりませんでした。

4

3 に答える 3

15

解決策を見つけました。新しい asp.net mvc4 プロジェクトを作成するときはいつでも、Asp.Net Web Api が付属しています。また、パス api/ もあります。両方を一緒にする必要はないので、nuget パッケージ マネージャーを使用してそのモジュールを削除するだけで、何のようにも機能します。

あなたがまだどこかに立ち往生しているなら、私に知らせてください. asp.net mvc4で私のために今働いているので。

于 2012-10-09T09:39:10.057 に答える
10

ServiceStack.Host.Mvc NuGet パッケージをインストールするときのREADME.txtページに、MVC を使用して ServiceStack をインストールするために必要な手順が表示されます。競合する WepApi がバンドルされているため、MVC4 をサポートするための行を追加しました。

For MVC4 applications you also need to unregister WebApi, by commenting out this line:

    //WebApiConfig.Register(GlobalConfiguration.Configuration);

また、MVC4 の既定のインストールから WebApiを無効にするために手動でインストール手順を提供する必要はありませんが、残念ながら、これは利用可能なもので現時点で実行できる最善の方法です。

ServiceStack ドキュメントはコミュニティ wiki です。

ServiceStack の wiki ドキュメントに欠けているものがあると思われる場合は、遠慮なく追加してください。これは、ServiceStack コミュニティによって維持され、ServiceStack コミュニティのためのものであるためです。

WebApi を無効にする簡単な方法を aspnetwebstack チームに依頼する

Nuget を介して WebApi を無効にできる簡単で自動化された方法を提供できるかどうか、aspnetwebstack チームに既に要求しています。機能要求にコメントして、この機能のサポートをお気軽に示してください。

完全な README.txt の説明

README を検索しやすくするために、ここで繰り返します。


Global.asax.csASP.NET MVC でのホスティングは、任意の ASP.NET フレームワークでのホスティングと非常に似ています。つまり、ServiceStack AppHost は、 (または WebActivator) での起動時に初期化する必要があります。たとえば、次のようになります。

public class Global : System.Web.HttpApplication
{
    protected void Application_Start(object sender, EventArgs e)
    {
        new AppHost().Init();
    }
}

Global.asax の MvcApplication.RegisterRoutes(RouteCollection) に以下の行を追加して、ServiceStacks '/api' パスを登録する必要があります

routes.IgnoreRoute("api/{*pathInfo}"); 
routes.IgnoreRoute("{*favicon}", new { favicon = @"(.*/)?favicon.ico(/.*)?" }); //Prevent exceptions for favicon

メソッドの現在のエントリの前に配置します。

MVC4 アプリケーションの場合、次の行をコメントアウトして、WebApi の登録も解除する必要があります。

    //WebApiConfig.Register(GlobalConfiguration.Configuration);

Mini Profiler を有効にするには、次の行を Global.asax.cs の MvcApplication に追加します。

protected void Application_BeginRequest(object src, EventArgs e)
{
    if (Request.IsLocal)
        ServiceStack.MiniProfiler.Profiler.Start();
}

protected void Application_EndRequest(object src, EventArgs e)
{
    ServiceStack.MiniProfiler.Profiler.Stop();
}

MiniProfiler の詳細については、https: //github.com/ServiceStack/ServiceStack/wiki/Release-Notes の v3.09 を参照してください。

メタデータ ページと含まれるサービスの URL:

于 2013-03-27T04:09:22.517 に答える
1

私は service stack を初めて使用します。MVC 4 アプリケーションも使用します。答え @mythz は正しいです。しかし、

routes.IgnoreRoute("api/{*pathInfo}");
routes.IgnoreRoute("{*favicon}", new { favicon = @"(.*/)?favicon.ico(/.*)?" }); //Prevent exceptions for favicon

AppStart/RouteConfig.cs に配置します

私のアプリケーションはうまく動作しています:D

于 2013-09-03T04:59:44.617 に答える