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:
为Evk更新:
我在src文件夹的静态文件中添加了static_json.json文件,它按预期得到了它:

预先感谢您的帮助!
我在开发过程中遇到了问题。我使用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)
我不确定,但看起来您的扩展程序被 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)
还要检查请求过滤。查看更多信息: 如何拒绝对特定文件扩展名的访问