Salesforce 如果两个环境之间存在一些差异,那么来自沙盒WSDL的服务引用是否可以在生产端点上工作?

Salesforce 如果两个环境之间存在一些差异,那么来自沙盒WSDL的服务引用是否可以在生产端点上工作?,salesforce,Salesforce,假设我有生产环境和沙箱环境 两者之间存在差异——让我们假设Sandbox安装了更多的模块,或者反过来说 然后,我从沙箱生成一个WSDL,基于该WSDL添加服务引用,并继续在.NET中编写我的应用程序。然而,.NET应用程序只使用沙盒和生产环境中通用的方法,例如login()、query(),使用标准对象,例如Lead等 我可以简单地将端点更改为指向生产并期望我编写的代码能够工作吗 据我所知,如果您只处理标准API调用,那么是的,更改端点就足够了。当然,您还需要确保使用适当的凭据和安全令牌 当您通

假设我有生产环境和沙箱环境

两者之间存在差异——让我们假设Sandbox安装了更多的模块,或者反过来说

然后,我从沙箱生成一个WSDL,基于该WSDL添加服务引用,并继续在.NET中编写我的应用程序。然而,.NET应用程序只使用沙盒和生产环境中通用的方法,例如login()、query(),使用标准对象,例如Lead等


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

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

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

为了完整性,Partner.wsdl是为连接到不同的组织而设计的,而不是特定的组织,因此它在不同的环境中是相同的,并且是松散类型的,对于您的目的来说,这可能是最好的

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


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

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


希望它能回答您的问题。

因此,以不同的形式再次提出这个问题-只要我不在两种环境中使用具有不同签名的方法(它们确实存在于我的服务引用中,因为WSDL来自Sandbox,并且我正在连接到生产,并且两者都有差异),那么我还可以吗?如果你不使用不同的签名调用方法,没有什么会变糟的。例如void Foo()是您的生产方法,void Foo(bool isNew)是您的暂存方法,在这种情况下,您不能在生产中使用从沙盒环境创建的客户端调用此方法。