C# 用于.NET Core的最简单的独立静态文件服务器

C# 用于.NET Core的最简单的独立静态文件服务器,c#,.net-core,webserver,C#,.net Core,Webserver,我写了一个关于如何使用尽可能少的行和文件为.NETCore编写一个简单的静态文件服务器的问题 它被标记为的副本。所以我的问题是: 真的是最简单的.NET核心静态文件Web服务器吗?我是否正确理解了它(我正试图将各种来源的信息拼凑在一起) Startup.cs Main.cs 使用系统; 使用Microsoft.AspNetCore.Hosting; 命名空间静态文件服务器 { 班级计划 { 静态void Main(字符串[]参数) { var host=new WebHostBuilde

我写了一个关于如何使用尽可能少的行和文件为.NETCore编写一个简单的静态文件服务器的问题

它被标记为的副本。所以我的问题是:

真的是最简单的.NET核心静态文件Web服务器吗?我是否正确理解了它(我正试图将各种来源的信息拼凑在一起)

Startup.cs

Main.cs

使用系统;
使用Microsoft.AspNetCore.Hosting;
命名空间静态文件服务器
{
班级计划
{
静态void Main(字符串[]参数)
{    
var host=new WebHostBuilder()
.UseKestrel()
.UseStartup()
.Build();
host.Run();
}
}
}

将这些代码放在一起,我找到的从该位置提供静态文件的最简单完整应用程序如下:

class Program
{
    static void Main(string[] args)
    {
        WebHost.CreateDefaultBuilder(args)
            .Configure(config => config.UseStaticFiles())
            .UseWebRoot("wwwroot/dist").Build().Run();
    }
}

如果您试图保持轻松,可以包括
Microsoft.AspNetCore
Microsoft.AspNetCore.Hosting
Microsoft.AspNetCore.StaticFiles
。或者,对于快速设置,您可以只安装一个软件包
Microsoft.AspNetCore.All

将这些代码放在一起,我找到的从该位置提供静态文件的最简单完整应用程序如下所示:

class Program
{
    static void Main(string[] args)
    {
        WebHost.CreateDefaultBuilder(args)
            .Configure(config => config.UseStaticFiles())
            .UseWebRoot("wwwroot/dist").Build().Run();
    }
}

如果您试图保持轻松,可以包括
Microsoft.AspNetCore
Microsoft.AspNetCore.Hosting
Microsoft.AspNetCore.StaticFiles
。或者,对于快速设置,您可以只安装一个软件包
Microsoft.AspNetCore.All

@vzwick的可能重复如果你读了这个问题,你提到的可能重复的是我在这个问题中提到的封闭式问题。我知道。作为35k代表用户,您还应该知道,处理问题的方法是编辑原始问题并请求重新打开,而不是创建另一个副本。@vzwick的经验告诉我它不会重新打开,我的问题仍然没有回答。是的,我应该删除它,而不是创建副本。一个相对成熟(可扩展/可插拔)的Web服务器需要14行代码?没有比这更好的了。您可以编写一个nuget包,将其简化为一个带有一些参数的调用并发布它。然后你就可以在大约3行中以可重复的方式完成。这完全取决于你想在哪里画出抽象的边界。@vzwick的可能重复如果你读了这个问题,你提到的可能重复的是我在这个问题中提到的封闭问题。我知道。作为35k代表用户,您还应该知道,处理问题的方法是编辑原始问题并请求重新打开,而不是创建另一个副本。@vzwick的经验告诉我它不会重新打开,我的问题仍然没有回答。是的,我应该删除它,而不是创建副本。一个相对成熟(可扩展/可插拔)的Web服务器需要14行代码?没有比这更好的了。您可以编写一个nuget包,将其简化为一个带有一些参数的调用并发布它。然后你就可以在大约3行中以可重复的方式完成。这完全取决于你想在哪里划定抽象的界限。谢谢!这的确很简单。最后,我没有像你建议的那样使用默认生成器,因为它还记录了我不想要的信息。我的“最后一个”示例是这样结束的:为了让它工作,我必须使用Microsoft.AspNetCore.Builder添加一个
如果您希望在未指定文件时请求默认为例如index.html,则在“UseStaticFiles”之前添加“UseDefaultFiles”。像这样:
config.usedaultfiles().usesticfiles()
谢谢!这的确很简单。最后,我没有像你建议的那样使用默认生成器,因为它还记录了我不想要的信息。我的“最后一个”示例是这样结束的:为了让它工作,我必须使用Microsoft.AspNetCore.Builder添加一个
如果您希望在未指定文件时请求默认为例如index.html,则在“UseStaticFiles”之前添加“UseDefaultFiles”。如下所示:
config.usedaultfiles().usesticfiles()
class Program
{
    static void Main(string[] args)
    {
        WebHost.CreateDefaultBuilder(args)
            .Configure(config => config.UseStaticFiles())
            .UseWebRoot("wwwroot/dist").Build().Run();
    }
}