自己ホスティング プロジェクトの助けを借りて、ServiceStack がどのように機能するかを学んでいます。セルフホスティング プロジェクトは、IIS 内で魔法が発生しないため、デバッグと理解がはるかに簡単です。
私はこれらの手順に従い、http://www.servicestack.net/mythz_blog/?p=785を読み、それらを逆方向に適用しました。
Docs ではうまくいきましたが、SocialBootstrapApi ではうまくいきませんでした。Global.asax の Application_Start() のコードが問題だと思います
ServiceStack ドキュメントの手順
ServiceStack Docs サンプル プロジェクトをダウンロードする
新しいコンソール プロジェクトを作成します (Docs はまだ 3.5 であるため、.Net 3.5)。
古い Web プロジェクトから web.config を除くすべてのファイルをコピーします。(私は最初にドラッグ アンド ドロップを使用しましたが、それはファイルを移動しただけで、.csproj ファイルを更新しなかったため、エディターを使用していくつかの ItemGroup セクションをコピーする必要がありました。)
AppHost を別のクラス ファイルに移動し、AppHostHttpListenerBase から継承するように変更
RazorRockstars プロジェクトから Programs.cs ファイルをコピーします。
baseUrl を変更します。 var baseUrl = "http://localhost:2001/"; // ConfigUtils.GetAppSetting("WebHostUrl");
RazorRockstars プロジェクトから app.config ファイルをコピーします (ただし、これは必要ありませんでした)。
コンソール プロジェクトの出力パスを .\ に変更します。そうしないと PageManager.Init が間違ったパスを取得し、ほとんどのファイルが見つからないためです。
これを行ったら、完全な ServiceStack ソース コードをダウンロードしてデバッグ モードで再コンパイルし、Docs プロジェクト内のすべての ServiceStack 参照を新しくコンパイルされたものに置き換えます。これで、すべての ServiceStack コードを簡単にステップ実行し、ブレークポイントなどを設定して、何がいつ起こっているかを理解できます。コンソール プロジェクトには他にもいくつかの利点があります。起動が速く、エディット コンティニュが頻繁に機能します。
SocialBootstrapApi については、/ and を除いて同じことを行いました
web.config の名前を app.config に変更しました
コメントアウト // [assembly: WebActivator.PreApplicationStartMethod(typeof(SocialBootstrapApi.AppHost), "Start")]
これで、プロジェクトの通常の ServiceStack 部分が機能しますが、URL には最初の /api/ がありません。
Application_Start() を Global.asax から AppHost.Configure に移動しようとしました ==>> 開始を拒否します