Asp.Net Core 2.0 Web应用程序静态文件提供404

pav*_*vel 7 c# asp.net web-services http-status-code-404 asp.net-core

我尝试从Web服务器(asp.net core 2.0)中获取自定义扩展静态文件。

我尝试接下来运行:

public class Startup
{
    public Startup(IConfiguration configuration)
    {
        Configuration = configuration;
    }

    public IConfiguration Configuration { get; }

    public void ConfigureServices(IServiceCollection services)
    {
        services.AddDirectoryBrowser(); // just to see that I have this files 
    }

    public void Configure(IApplicationBuilder app, IHostingEnvironment env)
    {
        app.UseStaticFiles();
        app.UseDirectoryBrowser();
    }
}
Run Code Online (Sandbox Code Playgroud)

因此,我可以在文件夹中看到我的文件,但无法获取-抛出404: 我在文件夹中的文件

当我单击它时:什么也没发生,我得到了404。 在此处输入图片说明

为Evk更新:

我在src文件夹的静态文件中添加了static_json.json文件,它按预期得到了它: 但是红色的仍然不可用

预先感谢您的帮助!

Zu1*_*779 7

我在开发过程中遇到了问题。我使用UseStaticFiles的重载方法将选项ServeUnknownFileTypes设置为true。

public void Configure(IApplicationBuilder app, IHostingEnvironment env) {
    app.UseDeveloperExceptionPage()
        .UseSession()
        .UseStaticFiles(new StaticFileOptions
        {
            ServeUnknownFileTypes = true,
        })
        .UseDirectoryBrowser()
        .UseRequestLocalization()
        .UseMvcWithDefaultRoute();
}
Run Code Online (Sandbox Code Playgroud)


Evg*_*but 6

我不确定,但看起来您的扩展程序被 IIS 设置拒绝直接作为静态资源访问。请为 web.config 试试这个:

<configuration> 
   <system.webServer> 
       <security> 
          <requestFiltering> 
              <fileExtensions> 
                <add fileExtension=".appinstaller" allowed="true" /> 
              </fileExtensions> 
         </requestFiltering> 
       </security> 
    </system.webServer> 
</configuration> 
Run Code Online (Sandbox Code Playgroud)

还要检查请求过滤。查看更多信息: 如何拒绝对特定文件扩展名的访问