考虑到两种环境之间存在一些差异,Sandbox WSDL的服务引用是否可以在生产端点上运行?

时间:2012-01-05 05:08:15

标签: salesforce

假设我同时拥有Production和Sandbox环境。

两者之间存在差异 - 我们只是说Sandbox安装了更多模块,或者反过来。

然后我从Sandbox生成一个WSDL,添加基于该WSDL的服务引用,然后继续在.NET中编写我的应用程序代码。但是,.NET应用程序仅使用Sandbox和Production环境共有的方法,例如login(),query(),使用Lead等标准对象。

我可以简单地将端点更改为指向生产并期望我编码的工作吗?

2 个答案:

答案 0 :(得分:1)

是。如果您调用的方法在两个环境中都具有相同的签名,则不会出现任何问题。如果更改服务契约中方法的签名,则会导致运行时异常。

另外我想评论一下,如果您更改(仅添加新成员)这些服务方法的数据合同,它也可以正常工作。为此,您的服务需要允许ExtensionDataObject。来自客户端的任何额外数据都将存储在服务器上的此对象中。

希望它能回答你的问题。

答案 1 :(得分:0)

据我所知,如果您只处理标准的API调用,那么是的,更改终点应该就足够了。当然,您还需要确保使用适当的凭据和安全令牌!

当您通过apex创建额外的Web服务时,它们有自己的WSDL来描述它们 - 如果您使用其中一个,那么如果方法相同,则两个环境应该相同。对于自定义对象等,它们受标准WSDL支持。

为了完整起见,Partner.wsdl设计用于连接不同的组织而不是特定的组织,因此它在不同的环境中是相同的,并且它是松散类型的,这可能是最适合您的目的。

  

为正在为多个组织构建客户端应用程序的客户,合作伙伴和ISV的松散类型WSDL。它可用于访问任何组织内的数据。