3

自己ホスト型アプリ (提供する Web サービスの URL を起動して表示するコンソール アプリ) をリファクタリングして、owin ではなく純粋な vnext で動作するようにできるかどうか疑問に思っていました。

オーウィンコードは次のとおりです

namespace Selfhostingtest
{
    class Program
    {
        static void Main(string[] args)
        {
            String strHostName = string.Empty;
            strHostName = Dns.GetHostName();
            Console.WriteLine("Local Machine's Host Name: " + strHostName);
            var options = new StartOptions();
            IPHostEntry ipEntry = Dns.GetHostEntry(strHostName);
            IPAddress[] addr = ipEntry.AddressList;
            for (int i = 0; i < addr.Length; i++)
            {
                if (!addr[i].IsIPv6LinkLocal && addr[i].AddressFamily == AddressFamily.InterNetwork)
                {
                    Console.WriteLine("IPv4 Address {0}: {1} ", i, addr[i].ToString());
                    options.Urls.Add(String.Format("http://{0}:5000/", addr[i].ToString()));
                }
            }
            using (WebApp.Start<Startup>(options))
            {
                Console.WriteLine("Razor server is running. Press enter to shut down...");
                Console.ReadLine();
            }
        }
    }
}

記録として、「k web」コマンド ライン スタートを使用したくありません。vnext アプリを実行可能ファイルとして完全にパッケージ化したい。

Microsoft.Owin.Hosting の代わりに、Microsoft.AspNet.Hosting を使用する必要があります (「k web」コマンド定義と同じクラスです。Owin スタートアップは IAppBuilder を想定し、vnext は IBuilder を想定していることに注意してください。

4

1 に答える 1

2

ASP.NET vNext では、EXE ファイルを作成することはできませんが、アプリをパッケージ化して自己完結型にすることはできます。kpm packアプリのフォルダーで実行できるコマンドを確認してください。すべての依存関係をパッケージ化し、(などを使用する代わりに) 使用できるコマンド スクリプトを生成しますk web。最終的に何を行うかを見ると、何を開始すべきかを示すためにさまざまなパラメーターを使用しk webて実行されるのは、いくつかのシェル スクリプトにすぎません。klr.exe

プロジェクト wiki には、kpmツールのさまざまなオプションに関する基本的な情報が含まれています: https://github.com/aspnet/Home/wiki/Package-Manager

kpm pack何ができるかを理解するための のコマンド ライン ヘルプを次に示します。

Usage: kpm pack [arguments] [options]

Arguments:
  [project]  Path to project, default is current directory

Options:
  -o|--out <PATH>                  Where does it go
  --configuration <CONFIGURATION>  The configuration to use for deployment
  --overwrite                      Remove existing files in target folders
  --no-source                      Don't include sources of project dependencies
  --runtime <KRE>                  Names or paths to KRE files to include
  --appfolder <NAME>               Determine the name of the application primary folder
  -?|-h|--help                     Show help information
于 2014-09-04T01:57:25.150 に答える