来自 IIS 中托管的网站的 SOAP API 访问错误

Posted

技术标签:

【中文标题】来自 IIS 中托管的网站的 SOAP API 访问错误【英文标题】:SOAP API access error from a website hosted in IIS 【发布时间】:2016-05-29 07:33:15 【问题描述】:

我在 Windows Server 2012 的 IIS 中托管了一个应用程序。网站会定期失去调用应用程序中使用的安全 SOAP Api 的能力。通过在 IIS 中重新启动网站可以解决该问题。但我无法在所有时间点重新启动应用程序。

我在事件查看器中收到以下错误消息,并且 应用程序错误日志。

事件查看器

TLS 协议定义的致命警报代码为 80。

应用程序错误日志

“无法为具有权限的 SSL/TLS 建立安全通道 '网址'”

Windows 更新尚未安装已知会产生此错误的 Microsoft 的 S 通道 SSL 更新 KB。

【问题讨论】:

***.com/questions/1742938/… 【参考方案1】:

如果您查找错误原因:

TLS 协议中的警报代码 80 表示:

内部错误:与对等方或对方无关的内部错误 协议的正确性使其无法继续,例如 内存分配失败。该错误与协议无关。这 消息总是致命的。

SOAP UI的配置好像有什么不好,可能有哪些情况:

    Service 中的内存消耗: Checkout WCF - Random client timeout when making multiple calls

    限制(服务调用和优化的上限)设置相关的内容:您需要为任何托管应用程序设置最大并发调用。确保该值大于所需的连接。结帐WCF timeout exception detailed investigation

    服务器出现问题(应用程序内存泄漏、内存不足、其他进程):在 Eventviewer 中监控服务器日志以了解应用程序错误。

    应用程序池的空闲超时设置:托管在 IIS 上的任何托管应用程序都使用应用程序池,并且应用程序池具有空闲超时。这意味着如果在一段时间内(AppPool 的空闲超时)没有使用该 AppPool 上的托管应用程序,则回收 AppPool 以释放资源。之后的新调用需要启动 AppPool,这需要比通常更多的时间,如果超时时间较短,可能会导致某些应用程序超时。 查看Configure Idle Time-out Settings for an Application Pool

【讨论】:

应用程序在重新启动 IIS 后开始重新运行。该 URL 可在 iexplorer 中访问,无需任何证书验证检查。即使在引发错误期间,API 调用也使用 SOAPUI 成功处理。 确保为 IIS 上的托管应用程序强制执行 https,否则永远不会使用该证书。

以上是关于来自 IIS 中托管的网站的 SOAP API 访问错误的主要内容,如果未能解决你的问题,请参考以下文章

从 IIS 的命令行列出所有托管网站

信任来自 IIS 的自签名证书

将后端文件托管到 IIS

我可以在我的 IIS 托管网站中跨 AppDomain 共享 dll 吗?

在 IIS 中托管可以从任何 Web 客户端访问的网站?

使用 IIS Express 托管网站(临时)