ASP.NET Core 行军记 -----拔营启程

时间:2022-07-07 05:59:26

ASP.NET MVC 6:https://docs.asp.net/en/latest/mvc/index.html

ASP.NET Core :https://docs.asp.net/en/latest/fundamentals/index.html

cli-samples  : https://github.com/aspnet/cli-samples

以下是我在学习过程中的一些总结,作此记录

抱怨!

微软的发布候选版本真是坑爹……

1:三月初开始看 ASP.NET Core ,利用 2015 搭建了个测试项目,一切正常一切 OK,可以说是一步到位没有任何问题(开心得不得了,感觉都快上天了)

2:可惜好景不长,就这本周将项目更新到了RC2,项目的程序包还原就一直报错:【引用(错误-参阅“错误列表”)】(失落、悲愤、狂躁……)

3:四处寻觅,终得.NET跨平台之旅:将示例站点从 ASP.NET 5 RC1 升级至 ASP.NET Core 1.0,喜出望外。

4:今天利用 dotnet restore 更新了包之后又 GG 了。

 

疑问?

脑子不够用呀,谁有多的给我来两斤!

1:CR2 后,如何将项目寄宿到 IIS 或者 IIS Express 中?

2:为何我 2015 中,我右键引用-还原程序包总是报错【引用(错误-参阅“错误列表”)】,然而在命令行中使用 dotnet restore 之后又正常了。

3:有时候会出现【no actions matched the current request】的错误,说什么路由已经匹配成功了,但是请求匹配不到 action,这又是个什么梗?但是当我重新修改 Startup.cs 文件之后就又可以了!(2016年3月22日 14:35:18:根据园友分享,本错误是因为.net core 不是最新版本导致的ASP.NET Core 行军记 -----拔营启程

   …………

N:and so on.

 

基本配置

时间:2016年3月17日 19:05:03

1,程序入口配置(Program.cs):

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

        host.Run();
    }
}
注:3.15打假日将 UseApplicationBasePath(Directory.GetCurrentDirectory()) 修改为 UseContentRoot(Directory.GetCurrentDirectory()) 反正搞不清为什么,记录下。
 
2,启动项程序(Startup.cs):
public class Startup
{
    public void ConfigureServices(IServiceCollection services)
    {
        services.AddMvc();
        services.AddTransient<Model.Services.StatisticsService>();
    }

    public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory)
    {
        app.UseMiddleware<artifacts.Middlewares.TimeRecorderMiddleware>();

        loggerFactory.AddConsole(LogLevel.Debug);

        app.UseIISPlatformHandler();
        app.UseForwardedHeaders(new ForwardedHeadersOptions
        {
            ForwardedHeaders = ForwardedHeaders.All
        });

        app.UseStaticFiles();

        if (env.IsDevelopment())
        {
            app.UseDeveloperExceptionPage();
        }

        app.UseMvcWithDefaultRoute();
    }
}

配置好入口程序和启动程序后通过命令 dotnet restore 更新包,然后键入 dotnet run 开启自我寄宿服务。

就可以通过 http://localhost:5000 通过默认路由加载页面。

好了,简单配置就是这样啦。

 

从无建站的简单流程

1,win + R 键入 cmd ,然后定位到一个目录(我的目录是D:\ASP.NET)。

D:\ASP.NET>dotnet new
Created new C# project in D:\ASP.NET.

 

2,通过命令 dotnet new 初始化一个简单基础的 .net 项目。

D:\ASP.NET>dotnet restore
log  : Restoring packages for D:\ASP.NET\project.json...
info : Committing restore...
log  : Restore completed in 4200ms.
NuGet Config files used:
    D:\ASP.NET\NuGet.Config
    C:\Users\Administrator\AppData\Roaming\NuGet\NuGet.Config
Feeds used:
    https://dotnet.myget.org/F/dotnet-core/api/v3/index.json
    https://api.nuget.org/v3/index.json

 

3,输入启动的命令 dotnet run ,启动程序。

D:\ASP.NET>dotnet run
Compiling ASP.NET for DNXCore,Version=v5.0

Compilation succeeded.
    0 Warning(s)
    0 Error(s)

Time elapsed 00:00:03.2201958

Hello World!

 

4,就这样运行起来了,很容易入门呀

//Program 文件
    public class Program
    {
        public static void Main(string[] args)
        {
            Console.WriteLine("Hello World!");
        }
    }

 

注:目录结构为:

D:.
│  NuGet.Config
│  Program.cs
│  project.json
│  project.lock.json
│
├─bin
│  └─Debug
│      └─dnxcore50
│          │  ASP.NET.dll
│          │  ASP.NET.pdb
│          │
│          └─win7-x64
│                  ASP.NET.deps
│                  ASP.NET.dll
│                  ASP.NET.exe
│                  ASP.NET.pdb
│                  hostpolicy.dll
│
└─obj
    └─Debug
        └─dnxcore50
                dotnet-compile-csc.rsp
                dotnet-compile.assemblyinfo.cs
                dotnet-compile.rsp

 

因为 dotnet new 创建的是控制台应用程序,所有就只有一个Program文件。

如果需要搭建 WEB 应用程序,就需要添加 Startup.cs 文件(上面有),然后在 Program.cs 中利用 WebHostBuilder 来寄宿。