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

Server was unable to process request SalesForce Outbound Message

大家好,我在 c# asp.net 站点上有一个 (ASMX) 网络服务,我正在接收来自销售人员的出站消息 我有不止一种类型的通知,一种是针对帐户,另一种是任务当我从 WSDL 文件生成 ProxyClass 时,第一个是使用所有默认类名,当我为任务执行此操作并将 WSDL 文件转换为 ProxyClass 时,它显示有关名称相互冲突的错误,因此我更改了名称中的名称ProxyClass,例如 notificationTasks 的通知的默认名称,NotificationReponce 到 notificationsResponseTask,sObject 到 sObjectTask,所以当我 运行 接收通知的通用代码和 return 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;

    }


}

我在这里做错了什么?

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

谢谢, 阿杰·杜贝迪

所以我看待你的问题的方式我想我有解决方案我已经 运行 解决这个问题并且它很容易解决,在 Stack exchange [=13] 上已经有一个关于这个的问题=].

出站的工作方式是 proxyCalss 的编码方式是为了能够成功获取通知并对其进行解码,您需要它采用特定形式并且名称非常敏感,例如您说您更改了名称notificationsResponse 现在,当 salesforce 发送消息时,它期望 return 值具有您更改的 notificationsResponse 的名称,这就是为什么更改 Class 中的名称只会导致更多问题。

现在,如果您阅读了我在此答案中添加的问题,它说您可以轻松地将第二条出站消息放入一个唯一的名称空间 class,请在创建代理时执行以下操作class 将整个 class 放入一个命名空间 ex:

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

现在您的新出站消息是独一无二的,不会与其他代理冲突Class,现在在您的 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 
            }

尝试它应该工作。谢谢!