将xml作为字符串传递给webservice会导致完全失败

时间:2014-04-02 22:26:27

标签: c# .net xml web-services asmx

我正在托管用c#编写的.net webservice。在我的一个Web方法中,我期待一些入站参数,所有这些都是字符串。最后一个字符串实际上是一个xml字符串(我开始为此做一个数据集,但读取这个是一个很大的禁忌,所以改为使用这条路线。)

xml(作为字符串)非常简单。

<FriendsArray><Friend><FriendSocialID>123456789</FriendSocialID><FriendName>Test Test</FriendName><AvatarImage>https://www.imagelocation.com</AvatarImage><FriendGender></FriendGender></Friend></FriendsArray>

<FriendsArray>为bounder,<Friend>节点重复n次。在Web服务端,我接受这个字符串,将其序列化为xml并处理数据。

当在Visual Studio中的服务器上本地运行Web服务时,它运行正常,没有问题。当webservice在本地运行并附加到一个测试调用程序时,该程序只是模拟传递这些参数,包括将FriendArray传递给webservice,再次,正如下雨,没有问题,完美地工作。

调用webservice foreign的真实场景(通过模拟,如SoapUI或XMLSpy,或直接从应用程序调用它),它会轰炸服务。没有返回错误,或者空响应对象,它完全失败,并且什么都不返回。

第二个我删除了这个FriendArray(它在代码隐藏中是可选的),它运行得很好。

这样做是否存在一些固有的问题?如果是这样,是否有一种简单的替代方式,不需要大量的重新编码?谢谢!

1 个答案:

答案 0 :(得分:3)

显然&#34;&lt;&#34;和&#34;&gt;&#34;以XML格式保留。我没有意识到这一点。我所要做的就是用字符串中的&lt;&gt;来逃避它们,现在它完美无缺。