[英]Running ASP.NET 5 Cross-Platform
我對Windows和Mac OS機器上的ASP.NET 5感興趣。 首先,我在Windows機器上安裝了Visual Studio 2015 RC。 我為ASP.NET 5(又名vNext)創建了一個新的空網站。 我使用Views目錄更新了模板,並包含了MVC和Static Files nuget包。 我可以成功運行這個“Hello World”應用程序。 我也成功地將其檢入GitHub並自動將其部署到Azure作為網站。
然后,我在Mac OS機器上克隆了存儲庫。 我成功運行了dnu restore
來獲取軟件包。 然后我跑了dnx . run
dnx . run
。 當我這樣做時,我收到了一個錯誤。 錯誤是:
'Website' does not contain a static 'Main' method suitable for an entry point
我究竟做錯了什么? 我有一個Startup.cs文件。 我知道它的工作原理是它在Windows和Azure上運行。 然而,我無法弄清楚我錯過了什么。 我的Startup.cs文件如下所示:
Startup.cs
using Microsoft.AspNet.Builder;
using Microsoft.AspNet.Hosting;
using Microsoft.Framework.ConfigurationModel;
using Microsoft.Framework.DependencyInjection;
namespace Test.Site.Web
{
public class Startup
{
public void ConfigureServices(IServiceCollection services)
{
services.AddMvc();
}
public void Configure(IApplicationBuilder app)
{
app.UseErrorPage();
app.UseStaticFiles();
app.UseMvc(routes =>
{
routes.MapRoute("default",
"{controller}/{action}/{id}",
defaults: new { controller = "Home", action = "Index" });
});
app.UseMvc();
app.UseWelcomePage();
}
}
}
我做錯了什么?
在project.json
文件中,應該有一組命令來運行項目。 默認情況下,其中一個是web
,一個是kestrel
。 Kestrel是OS X和Linux的服務器,它基於libuv
,與Node相同的庫。
"commands": {
"gen": "Microsoft.Framework.CodeGeneration",
"kestrel": "Microsoft.AspNet.Hosting --server Kestrel --server.urls http://localhost:5004",
"web": "Microsoft.AspNet.Hosting --server Microsoft.AspNet.Server.WebListener --server.urls http://localhost:5002"
},
(我目前沒有VS 2015在我面前,因此我不能100%確定“空”項目中的默認命令,因此您可能需要添加kestrel命令)。
因此,運行此命令以在OS X或Linux上啟動服務器:
dnx . kestrel
如果從Windows上的命令提示符啟動它,則使用:
dnx . web
請注意,您可以根據需要自定義命令。 例如,一個命令可能會生成數據庫。 另一個可能會分析服務器的系統要求。 有人甚至可以卸載應用程序!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.