C# ASP.NET Core web.config请求筛选未覆盖applicationhost.config
我正在尝试将大文件上载到ASP.NET Core MVC 2.1应用程序中的API控制器操作。为此,我一直在试图找出如何通过IIS Express实现这一点,这也是我通过Visual Studio运行应用程序的方式。正如所建议的,这应该可以通过向项目根目录添加一个C# ASP.NET Core web.config请求筛选未覆盖applicationhost.config,c#,asp.net-core,asp.net-core-mvc,C#,Asp.net Core,Asp.net Core Mvc,我正在尝试将大文件上载到ASP.NET Core MVC 2.1应用程序中的API控制器操作。为此,我一直在试图找出如何通过IIS Express实现这一点,这也是我通过Visual Studio运行应用程序的方式。正如所建议的,这应该可以通过向项目根目录添加一个web.config文件来实现,该文件包含以下内容: 但是,这不会产生任何影响,因为应用程序只返回HTTP错误404.13-未找到,表明请求太大。这些设置似乎被IIS锁定,因此web.config不会覆盖它们。是的,我还在控制器操作
web.config
文件来实现,该文件包含以下内容:
但是,这不会产生任何影响,因为应用程序只返回HTTP错误404.13-未找到
,表明请求太大。这些设置似乎被IIS锁定,因此web.config
不会覆盖它们。是的,我还在控制器操作上使用属性,如[DisableFormValueModelBinding]
和[DisableRequestSizeLimit]
相反,我发现它是通过在\.vs\config
文件夹中的applicationhost.config
中向站点添加相同的配置来工作的:
然而,这个文件并没有在GIT中被跟踪,将它添加到GIT似乎也不是一个好的解决方案
为什么不允许
web.config
覆盖applicationhost.config
?还是有一个解决方案我还没有找到?我有一个类似的问题,我用这个添加了一个web.config
<configuration>
<system.webServer>
<security>
<requestFiltering>
<!-- This will handle requests up to 700MB (CD700) -->
<requestLimits maxAllowedContentLength="737280000" />
</requestFiltering>
</security>
</system.webServer>][1]][1]
</configuration>
][1]][1]
发得太早了。上述解决方案适用于iis express server,但不适用于docker。然后我更新了条目
public static IWebHostBuilder CreateWebHostBuilder(string[] args) =>
WebHost.CreateDefaultBuilder(args)
.UseStartup<Startup>()
.UseKestrel(options =>
{
options.Limits.MaxRequestBodySize = 100000000; //100MB
});
公共静态IWebHostBuilder CreateWebHostBuilder(字符串[]args)=>
WebHost.CreateDefaultBuilder(args)
.UseStartup()
.UseKestrel(选项=>
{
options.Limits.MaxRequestBodySize=100000000;//100MB
});
然后用[RequestSizeLimit(100\u 000\u 000)]
这些解决方案在本地和产品中为我解决。我不知道为什么在这一定是一个非常常见的问题时没有答案。遗憾的是,我最终恢复了使用POST而不是GET,我想这更有意义。感谢您的反馈,但它似乎与我发布的配置没有任何不同,只是数量较低,这并不能解决我的问题。另外,当你在SO上提交代码时,有一个建议:请避免使用图片-我真的不能复制粘贴它。解决方案更新希望它能解决你的问题;)祝你好运