dotnet run是如何啟動asp.net core站點的


在曾經的 asp.net 5 過渡時期,運行 asp.net 5 站點的命令是dnx web;在如今即將到來的 asp.net core 時代,運行 asp.net core 站點的命令是dotnet run(啟動控制台程序也是同樣的命令)。

在使用dnx web時,需要在project.json中配置對應的web command:

"commands": {
    "web": "Microsoft.AspNet.Server.Kestrel --server.urls http://localhost:5004"
}

而使用dotnet run啟動asp.net core站點,不需要在project.json中進行額外的配置,但需要增加program.cs文件,並且添加相應的代碼,比如以下的代碼(來自cli-samples):

public class Program
{
    public static void Main(string[] args)
    {
        var host = new WebHostBuilder()
                    .UseServer("Microsoft.AspNetCore.Server.Kestrel")
                    .UseApplicationBasePath(Directory.GetCurrentDirectory())
                    .UseDefaultConfiguration(args)
                    .UseIISPlatformHandlerUrl()
                    .UseStartup<Startup>()
                    .Build();

        host.Run();
    }
}

上面的代碼讓dotnet run啟動 asp.net core 站點的秘密一覽無余。

Web應用程序程序與控制台應用程序使用同樣的入口,實現了啟動方式的統一,變得更簡單。

Web站點的啟動工作是由WebHostBuilder(源碼)起頭的,但它只是准備一些啟動參數,最終把啟動工作交給了真正的主角—WebHost(源碼)。

dotnet run只負責加載.NET Core運行環境與調用應用程序的入口,web站點的啟動完全由Microsoft.AspNetCore.Hosting負責。dotnet run啟動asp.net core站點就是這么簡單清晰。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM