Asp.net core .Net核心请求筛选和文件下载
我们有一个.net核心Web应用程序,它只是承载一些客户端应用程序更新的文件 我们决定在其中一个客户端应用程序中添加应用程序洞察,文件ApplicationInsights.config是更新的一部分 请求抛出404错误 到目前为止,我已经尝试:Asp.net core .Net核心请求筛选和文件下载,asp.net-core,web-applications,Asp.net Core,Web Applications,我们有一个.net核心Web应用程序,它只是承载一些客户端应用程序更新的文件 我们决定在其中一个客户端应用程序中添加应用程序洞察,文件ApplicationInsights.config是更新的一部分 请求抛出404错误 到目前为止,我已经尝试: 启动时在静态文件定义中添加“.config”扩展名:无效果(这适用于.exe和.dll) 启用此文件夹的文件夹浏览,仍然无效 这似乎与一些现成的请求过滤有关 问题是: 如何禁用特定文件夹上的所有下载限制(最佳) 或 如何禁用*.config文件的所有筛
提前感谢这是因为默认设置没有为
*.config
文件提供映射
要使其服务于*.config
文件,只需创建自己的ContentTypeProvider
,或为*.config
添加映射:
var myContentTypeProvider= new FileExtensionContentTypeProvider();
myContentTypeProvider.Mappings.Add(".config","text/plain");
app.UseStaticFiles(new StaticFileOptions{
RequestPath = "/path/to/update",
FileProvider = new PhysicalFileProvider(
Path.Combine(Directory.GetCurrentDirectory(),"path/to/update"),
ExclusionFilters.None
),
ContentTypeProvider = myContentTypeProvider,
});
[更新]
经过讨论后,下面的Web.Config
(由OP提供)起作用:
@ITIMONUS:您好,谢谢您,不幸的是,我已经尝试过这个解决方案(如问题中所述)。它适用于我尝试过的每个文件扩展名(.exe,包括.dll),但不适用于.config。错误消息涉及web.config中的configuration/system.webServer/security/requestFiltering/fileExtensions部分。我们没有此应用的web.config。@Jurion您是如何尝试此解决方案的?你能告诉我们密码吗?我问这个问题是因为我的代码对我来说完美无瑕。hello@itminus,这里是一个屏幕截图:1st Exactly your solution(抛出文件夹not found exception)。2d:使用带有调整映射的dfefault FILEPROVIDER。适用于.exe和.dll。编辑:链接@Jurion 1。运行此网站时,当前目录是什么?2.AutoUpdates/ApplicationInsights.config
文件是否存在?3.您是否在根路径下提供静态文件?没有RequestPath
谢谢!成功了。我不知道我可以把web.config扔到核心应用程序中。这是web.config:Edit:出于某种原因,我不能在评论中使用“@”。编辑2:/web.config保持对访问的保护,这很好
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<system.webServer>
<security>
<requestFiltering>
<fileExtensions>
<remove fileExtension=".config" />
<add fileExtension=".config" allowed="true" />
</fileExtensions>
</requestFiltering>
</security>
</system.webServer>
</configuration>