C# 跨平台运行ASP.NET5
我对Windows和Mac OS机器上的ASP.NET 5感兴趣。首先,我在Windows计算机上安装了Visual Studio 2015 RC。我为ASP.NET5(又名vNext)创建了一个新的空网站。我用一个Views目录更新了模板,并包含了MVC和静态文件nuget包。我可以成功运行这个“Hello World”应用程序。我还成功地将其签入GitHub,并将其作为网站自动部署到Azure 然后,我在Mac OS机器上克隆了存储库。我成功地运行了C# 跨平台运行ASP.NET5,c#,asp.net,macos,C#,Asp.net,Macos,我对Windows和Mac OS机器上的ASP.NET 5感兴趣。首先,我在Windows计算机上安装了Visual Studio 2015 RC。我为ASP.NET5(又名vNext)创建了一个新的空网站。我用一个Views目录更新了模板,并包含了MVC和静态文件nuget包。我可以成功运行这个“Hello World”应用程序。我还成功地将其签入GitHub,并将其作为网站自动部署到Azure 然后,我在Mac OS机器上克隆了存储库。我成功地运行了dnu restore以获取软件包。然后我
dnu restore
以获取软件包。然后我运行了dnx。运行。当我这样做的时候,我得到了一个错误。错误是:
'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是OSX和Linux的服务器,它基于为其供电的同一个库
(目前我面前没有VS 2015,因此我无法100%确定“空”项目中的默认命令,因此您可能需要添加kestrel命令)
因此,运行以下命令在OS X或Linux上启动服务器:
dnx . kestrel
如果您是从Windows上的命令提示符启动它,您将使用:
dnx . web
注意:您可以根据自己的喜好自定义命令。例如,一个命令可以生成数据库。另一个可能会分析服务器的系统需求。甚至可以卸载该应用程序 非常感谢你。我想知道为什么在我看到的一些示例中有两个条目。感谢您的全面回复。@ZachTempleton那么默认情况下,空的网站模板中有
kestrel
命令?请让我知道,以便我可以更新我的答案。
dnx . web