WCF服务在升级到Server 2019后对单引号进行编码



在将我们的Web服务器升级到Windows 2019(从2008年起(后,我们的WCF服务(.NET 3.5(响应是html编码的。为了澄清,响应应该是一个编码的xml字符串(有意地,通过System.Web.HttpUtility.HtmlEncode(,但在升级后,响应似乎被编码了两次。这里有一个例子:

服务器升级前的旧响应(注意ResultName上的单引号没有编码(:

<a:ResultData><![CDATA[&lt;Result&gt;&lt;schema&gt;&lt;ts name='ResultName' … </a:ResultData>

服务器升级后的新响应(单引号已编码(

<a:ResultData><![CDATA[&lt;Result&gt;&lt;schema&gt;&lt;ts name=&#39;ResultName&#39; … </a:ResultData>

是否有任何我们可能错过的IIS设置会导致这种行为?或者一些我们需要启用/禁用的WCF特定行为?我在网上查了一下,还没有找到任何关于这个问题的信息。考虑到代码本身没有改变,而且它曾经工作过,我们正在查看服务器配置以提供答案,但还没有找到罪魁祸首。

感谢您的帮助!

问题出现在System.Web.HttpUtility.HtmlEncode.版本中

System.Web v2不编码单引号,但System.Web v4编码。

不幸的是,我们没有在新服务器上设置应用程序池,WCF服务在较新版本的.NET中运行,该.NET加载了对单引号进行编码的较新版本System.Web v4。

一旦WCF服务被分配了正确的应用程序池,问题就得到了解决。

最新更新