Asp.net core .Net核心请求筛选和文件下载

Asp.net core .Net核心请求筛选和文件下载,asp.net-core,web-applications,Asp.net Core,Web Applications,我们有一个.net核心Web应用程序,它只是承载一些客户端应用程序更新的文件 我们决定在其中一个客户端应用程序中添加应用程序洞察,文件ApplicationInsights.config是更新的一部分 请求抛出404错误 到目前为止,我已经尝试: 启动时在静态文件定义中添加“.config”扩展名:无效果(这适用于.exe和.dll) 启用此文件夹的文件夹浏览,仍然无效 这似乎与一些现成的请求过滤有关 问题是: 如何禁用特定文件夹上的所有下载限制(最佳) 或 如何禁用*.config文件的所有筛

我们有一个.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>