【发布时间】:2014-04-02 22:26:27
【问题描述】:
我正在托管一个用 c# 编写的 .net 网络服务。在我的一种网络方法中,我期待一些入站参数,所有这些都是字符串。最后的字符串实际上是一个 xml 字符串(我开始为此做一个数据集,但读到这是一个很大的禁忌,所以改用这条路线)。
xml(作为字符串)非常简单。
<FriendsArray><Friend><FriendSocialID>123456789</FriendSocialID><FriendName>Test Test</FriendName><AvatarImage>https://www.imagelocation.com</AvatarImage><FriendGender></FriendGender></Friend></FriendsArray>
<FriendsArray> 是边界,<Friend> 节点重复 n 次。在 web 服务端,我把这个字符串,序列化成 xml 并处理数据。
当 Web 服务在 Visual Studio 中的服务器上本地运行时,它可以完美运行,没有问题。当 web 服务在本地运行并附加到一个测试调用程序时,该程序只是模拟将这些参数(包括 FriendArray)传递给 web 服务,再次,就像下雨一样,没有问题,完美运行。
调用外部 Web 服务的真实世界场景(通过仿真,如 SoapUI 或 XMLSpy,或直接从要调用它的应用程序)它会轰炸服务。不返回错误,或者为空响应对象,完全失败,什么也不返回。
第二次我删除了这个 FriendArray(它在代码隐藏中是可选的),它工作得很好。
以我尝试的方式执行此操作是否存在一些固有问题?如果是这样,是否有一种不需要大量重新编码的简单替代方法?谢谢!
【问题讨论】:
-
它是一种什么样的网络服务? ASMX?
-
是的,它是一个非常简单的 .asmx 网络服务
-
XML 没有任何问题。你处理它的方式一定有问题。你能在你的服务中展示一些代码吗?
-
ASMX 是一项遗留技术,不应用于新开发。 WCF 或 ASP.NET Web API 应用于 Web 服务客户端和服务器的所有新开发。一个提示:Microsoft 已停用 MSDN 上的 ASMX Forum。
标签: c# .net xml web-services asmx