我们在生产环境中运行 asp.net Web API 应用程序,使用 IIS 和 ARR 进行 SSL 卸载和反向代理。我们发现从 webapi 端点请求 xml 时出现了一些奇怪的问题。
偶尔,请求间隔可能是 2 秒,也可能是几分钟,其实这并不重要,即使数据库没有改变,输出也会以不同的方式转换。这种情况几乎总是发生,设置一个 cron-job 每分钟获取一次,几乎所有的响应最终都会有所不同。
响应的一个部分可以有真正的换行符,而下一个响应中的相同内容可以将其转义为“\n”,从而输出文本 \n,而不是真正的换行符。对于同一个请求,同一响应的不同部分也可以以不同的方式进行转义。例如,一个 xml 元素可以有真正的换行符,而下一个 xml 元素可以对其进行转义。
Web 应用程序使用内置的 .NET xmlwriter,因此不会发生会导致这种情况的自定义 xml 输出。
我已经克隆了虚拟机并设置了一个不可重现的暂存环境,但由于数据较少,这里的响应要小得多。
ARR 中是否有任何设置可能导致转换在请求时表现如此?例如某些缓存机制