Flo*_*ter 7 iis ssl https upload
我有一个在 IIS 上运行的 ISAPI 应用程序,该应用程序旨在支持上传任何大小的文件。在一台服务器上,使用 HTTPS 时,上传似乎随机失败413 Request Entity Too Large或超时,唯一的补救措施似乎是设置uploadReadAheadSize为大于上传文件的值。然而,这会将上传文件的大小限制为 2GB( 的最大值uploadReadAheadSize),这是不可接受的。
uploadReadAheadSize在安装了相同应用程序并且设置为默认值(49152 字节)的任何其他服务器(并且有很多服务器)上都不会出现此问题。可能是什么原因导致这个问题,我应该如何调试这个问题?
(注意:我在 StackOverflow 和此处看到了几个类似的问题,但在这些情况下,要么要使用客户端证书,要么应用程序基于 WCF(我们的不是),或者问题不独立于uploadReadAheadSize或传输层安全)
uploadReadAheadSize另外,什么是了解实际情况以及“幕后”发生的事情的良好来源?微软的官方文档相当稀疏。
在使用 Visual Studio 2017 的 IIS Express 上遇到类似的错误,它实际上是uploadReadAheadSize.
错误:
HTTP 错误 413.0 - 请求实体太大
由于请求实体太大,页面未显示。
最可能的原因:
由于请求实体太大,Web 服务器拒绝为该请求提供服务。
Web 服务器无法为该请求提供服务,因为它正在尝试协商客户端证书,但请求实体太大。
请求 URL 或到 URL 的物理映射(即,到 URL 内容的物理文件系统路径)太长。
您可以尝试的事情:
验证请求是否有效。
如果使用客户端证书,请尝试:
增加 system.webServer/serverRuntime@uploadReadAheadSize
配置您的 SSL 端点以在初始 SSL 握手过程中协商客户端证书。(netsh http add sslcert ... clientcertnegotiation=enable) .vs\config\applicationhost.config
此处添加了解决方案,但相同的原理也可用于真正的 IIS。编辑\.vs\config\applicationhost.config。serverRuntime像Deny这样切换Allow:
<section name="serverRuntime" overrideModeDefault="Allow" />
Run Code Online (Sandbox Code Playgroud)
然后Web.config使用以下值进行编辑:
<system.webServer>
<serverRuntime uploadReadAheadSize="10485760" />
...
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
20516 次 |
| 最近记录: |