我们有netcoreapp2.2 API,标准结构,这是program.cs,启动,cs和一些控制器.
我们遇到的问题是,有时它会抛出错误:
Maximum message size quota for incoming messages (65536) has been exceeded
我们在IIS中发布了此API,因此我们只使用dotnet publish - c Release
构建API
这将生成bin\Release\netcoreapp2.2\publish
文件夹,然后我们将其复制到IIS应用程序
是否有任何代码可以放入Startup.cs,以便生成的web.config具有我们手动决定的MaxReceivedMessageSize
,而不是默认值65536
我们的Startup.cs是非常标准的,就像本页中的https://learn.microsoft.com/es-es/aspnet/core/fundamentals/startup?view=aspnetcore-2.2
3条答案
按热度按时间ccgok5k51#
如果你在IIS上托管应用,则需要在IIS级别进行配置,而不是在ASP.NET核心代码中进行配置。dotnet发布过程不会基于ASP.NET核心代码中的内容(如
Startup.cs
)自定义IISweb.config
。但是,您可以在项目的基目录中包含具有以下内容的
web.config
。转换web.config
文件的发布过程将从项目中的现有web.config
(如果存在)开始。相关文档如下:
如果项目中不存在web.config文件,则使用正确的processPath和参数创建该文件以配置ASP.NET核心模块,并将其移动到已发布的输出。
如果项目中存在web.config文件,则使用正确的processPath和参数转换该文件以配置ASP.NET核心模块,并将其移动到已发布的输出。转换不会修改文件中的IIS配置设置。
umuewwlo2#
默认情况下,Web服务支持长度为65536的消息。如果要更改Web服务消息长度,请在客户端服务中进行更改。
尝试将maxReceiveMessageSize属性添加到绑定标记。
7qhs6swi3#
我们最终用其中一个解决了这个问题:
在我们的代码中,当创建http客户端时:
web.config: