2012-01-11 23 views
1

我的朋友取得了红宝石的网络服务(http://195.117.148.68:3000/api/wsdl)。我的工作是在Silverlight中使用此服务。Silverlight可以不加参考红宝石服务

我想提出新的Silverlight项目,然后点击右键,“添加服务引用...”。然后我给地址 - >去,一切都很好。但是,生成的客户端不包含Web服务的方法。问题是为什么?

我刚刚开始使用这些Web服务。我已经成功地创建了一个跨域WCF服务应用程序的工作示例,但其他人不生成方法。

如果任何人能帮助我,我会非常感激。我花了一天的时间,找不到任何解决方案。

回答

0

问题来自代理类的生成。如果这是您知道创建代理的唯一方式,请检查WSDL并查看组合中是否缺少某些内容。如果所有的方法设置正确,你将不得不深入挖掘。

您也可以尝试在命令行实用WSDL.EXE,看看你得到任何警告或错误。这可以帮助你了解为什么它失败。

作为一种工作的周围,你可以创建一个空的服务,坚持在Ruby服务的接口(相同的方法,对象等),并创建一个代理关闭该服务。然后,您指向Ruby地址并处理任何异常。这有点欺骗,以避免创建自己的自定义代理对象。

的最后一个方法是创建自己的代理对象。好处是你可能会创建一个更“高效”的代理。缺点是不能自己编写“管道”代码,这可能会花费更多时间。

+0

有一些警告,但对我来说并不多。警告太长,我无法回答所以我会将它粘贴在以下注释中: – 2012-01-11 19:36:25

+0

警告:此Web引用不符合WS-I Basic Profile v1.1。 R2706:描述中的wsdl:binding必须对所有soapbind:body,soapbind:fault,soapbind:header和soapbind:headerfault元素中的use属性使用“literal”值。 – 2012-01-11 19:42:09

+0

- 输入元素soapbind:来自命名空间'urn:ActionWebService'的portType'wsdlApiBinding'上的操作体'GetTests'。 – 2012-01-11 19:42:39