你的位置:首页 > ASP.net教程

[ASP.net教程]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 newCreated new C# project in D:\ASP.NET.

 

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

D:\ASP.NET>dotnet restorelog : 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.ConfigFeeds 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 runCompiling ASP.NET for DNXCore,Version=v5.0Compilation succeeded.  0 Warning(s)  0 Error(s)Time elapsed 00:00:03.2201958Hello 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 来寄宿。