服务器无法处理请求SalesForce出站消息

时间:2019-03-17 23:49:06

标签: c# wsdl salesforce proxy-classes outbound

每个人,我在ac#asp.net网站上的(ASMX)中都有一个Web服务,并且我收到了来自销售人员的出站消息,我有不止一种通知类型,一种是针对帐户的,另一种是针对任务的,任务是第一种正在工作当我从WSDL文件生成ProxyClass时使用所有默认的ClassName,当我为Tasks完成并将WSDL文件转换为ProxyClass时,它显示关于名称的错误彼此冲突,因此我更改了ProxyClass中的名称,例如默认为通知任务的通知名称,通知响应的通知名称,sObject为sObjectTask,因此当我运行通用代码以接收通知并默认返回Ack=true时,它没有问题,但是尝试以下代码时:从中断消息中获取值,表明服务器错误无法处理该请求。 我的代码:

    class Tasks :INotificationBindingTasks
{
    //class MyNotificationListener : INotificationBinding

    public notificationsResponseTask notifications(notificationTasks notification2)
    {

        TaskNotification[] TaskNotification = notification2.Notification;


        notificationsResponseTask r = new notificationsResponseTask();
        r.Ack = true;
        return r;

    }


}

我在这里做错了什么?

2 个答案:

答案 0 :(得分:2)

因此,从我看待您的问题的方式来看,我认为我已经遇到过该问题的解决方案,而且非常容易解决,在堆栈交换here上已经存在与此相关的问题。

proxyCalss的出站工作方式是这样编码的:为了能够成功获取通知并对其进行解码,您需要将其以特殊形式存在,并且名称非常敏感,例如您说您更改了通知的名称。现在,当salesforce发送消息时,它期望的返回值是您更改的notificationsResponse名称,这就是在Class中更改名称只会引起更多问题的原因。

现在,如果您阅读我在此答案上添加的问题,它说您可以轻松地将第二个出站消息放入该类唯一的NameSpace中,请在创建代理类时按以下步骤将整个类放入一个命名空间,例如:

   namespace Customnotification
{
 // The whole rest of the class comes here
}

现在您的新出站邮件本身具有唯一性,并且不会与其他ProxyClass冲突,现在在您的webservice.asmx.cs文件中执行以下操作:

     namespace Customnotification
        {

            public class Tasks : INotificationBinding
            {

               // REST of the process goes here for the receiving data from outbound
              // Make sure you use the default notification names do not change them 
            }

尝试它应该起作用。谢谢!

答案 1 :(得分:0)

将(出站消息的)端点更改为要映射的特定Web服务;)

谢谢, 阿杰·杜贝迪(Ajay Dubedi)