C# Asp.NETCore2.0Web应用程序静态文件提供404
我尝试从web服务器(asp.net core 2.0)获取自定义扩展静态文件 我尝试运行下一个:C# Asp.NETCore2.0Web应用程序静态文件提供404,c#,asp.net,web-services,asp.net-core,http-status-code-404,C#,Asp.net,Web Services,Asp.net Core,Http Status Code 404,我尝试从web服务器(asp.net core 2.0)获取自定义扩展静态文件 我尝试运行下一个: public class Startup { public Startup(IConfiguration configuration) { Configuration = configuration; } public IConfiguration Configuration { get; } public void ConfigureS
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();
}
}
因此,我可以在文件夹中看到我的文件,但我无法获取它-它抛出404:
当我点击它时:什么也没发生,我得到了404。
为Evk更新:
我在src文件夹的静态文件中添加了static_json.json文件,它得到了预期的结果:
提前感谢您的帮助 我不确定,但IIS设置似乎拒绝您的扩展作为静态资源直接访问。请在web.config中尝试以下操作:
<configuration>
<system.webServer>
<security>
<requestFiltering>
<fileExtensions>
<add fileExtension=".appinstaller" allowed="true" />
</fileExtensions>
</requestFiltering>
</security>
</system.webServer>
</configuration>
我在开发过程中遇到了这个问题。
我使用UseStaticFiles的重载方法将选项ServeUnknownFileTypes设置为true
public void Configure(IApplicationBuilder app, IHostingEnvironment env) {
app.UseDeveloperExceptionPage()
.UseSession()
.UseStaticFiles(new StaticFileOptions
{
ServeUnknownFileTypes = true,
})
.UseDirectoryBrowser()
.UseRequestLocalization()
.UseMvcWithDefaultRoute();
}
这个答案可能来得晚,但在我的情况下,解决方案是在我的IIS设置中。
在请求筛选的允许列中,JavaScript文件扩展名(.js)设置为False。
从请求筛选中删除js文件为我解决了这个问题。这个应用程序是IIS托管的吗?@kuskmen是的,只需通过调试运行它。只是默认项目。未更改webroot文件夹位置等…您试图提供的文件在哪里?默认情况下,UseStaticFiles()将在wwwroot上提供文件。如果您试图为不同文件夹中的文件提供服务,请看以下内容:那么您的问题意味着具有非“自定义”扩展名的文件可以工作吗?例如像.txt文件?@jpgrassi是的,我使用默认文件夹:wwwroot/src。正如您所看到的,浏览器像静态内容一样检测到此文件,但它不想返回它(只需抛出404)