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 不是最新版本导致的)
…………
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 来寄宿。