0

我有一个与 slaesforce 集成的 MVC 应用程序。它工作正常,salesforce 提供了 WSDL,它在 MVC 应用程序中用作/作为 Web 参考,并成功访问了 salesforce 数据。现在我处于需要使用 Salesforce 沙箱的情况。

所以我有两个从 Salesforce 生成的 WSDL,一个用于生产,另一个用于沙盒。但不能同时将两者添加到 MVC 项目中,因为它们具有相同的对象。

我需要做的是在某些条件下更改 Webservice Url 或其他东西,以便一次使用生产 WSDL,另一次使用沙盒 WSDL。

所以它会是这样的

//The Action used in salesforce site to send submit order email
public string SendSubmitOrderEmail(string opportunityId,bool isSandbox)
{
   if(isSandbox)
   {
      SforceService sf = new SforceService();
      sf.Url = "https://test.salesforce.com/services/Soap/";
   }
   else
   {
      SforceService sf = new SforceService();
      sf.Url = "https://login.salesforce.com/services/Soap/";
   }
}     

或者我可以在 webconfig 中更改 webservice 设置吗?

<applicationSettings>
<ItineraryBuilder.Properties.Settings>
  <setting name="ItineraryBuilder_SalesForceService_SforceService"
    serializeAs="String">
    <value>https://login.salesforce.com/services/Soap/c/25.0/0DFd00Wa6</value>
  </setting>
</ItineraryBuilder.Properties.Settings>
</applicationSettings>

不知道该怎么做。

谢谢你的帮助。

4

2 回答 2

0

您应该在外部属性文件中设置端点 url(以及其他配置信息,如用户名、密码等),然后您的代码将访问此键值属性文件以检索端点 url 和配置信息以连接到 salesforce。

url=https://test.salesforce.com/services/Soap/

用户名=blah@blah.org.sandbox

密码=blahxxxx12345sxxx

理想情况下,您应该为沙盒/开发(dev.properties)和生产(prod.properties)拥有单独的属性文件,并且您的构建系统(maven 或类似系统)应该根据运行位置选择正确的属性文件。

您应该尽可能避免对 url 进行硬编码或在代码中确定环境。上述技术应该适用于 Java、C++、Python 等 oop 语言。

希望这是有道理的!

阿努普

于 2012-08-29T10:23:41.517 回答
0

谢谢大家,

在运行时更新 Web 引用工作正常

SforceService sf = new SforceService();
sf.Url = "test.salesforce.com/services/Soap/c/25.0/0DFd00000000Wa6"

我做错了什么,“sf”没有传递给用于创建连接的 API 类。

我在这里的另一个问题中得到了解决方案

使用 C# (MVC) 以编程方式更新 web.config applicationSettings

再次感谢。

于 2012-08-31T04:34:18.617 回答