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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ASP.NET Core 行军记 -----拔营启程相关的知识,希望对你有一定的参考价值。

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 文件之后就又可以了!

   …………

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 来寄宿。

以上是关于ASP.NET Core 行军记 -----拔营启程的主要内容,如果未能解决你的问题,请参考以下文章

如何在 ASP.NET Core MVC 中读取操作方法的属性?

记一个ueditor编辑器的上传包/Core/controller.ashx?action=

记一个ueditor编辑器的上传包/Core/controller.ashx?action=

asp.net core不通过构造方法从容器中获取对象及解决通过这种方法NLog获取对象失败的问题

ASP.NET Core (.NET Core) and ASP.NET Core (.NET Framework)区别

Asp.Net core (Full .Net framework) vs Asp.Net core (.Net Core) 性能