System.ServiceModel.MessageHeaderException:多个标题名为' Action'和命名空间......找到了

时间:2016-12-09 07:57:17

标签: wcf http-headers

我已经使用WCF实现了一个erp系统的接口。界面几乎一直都很好。在erp系统中每2-3个弱点发生一次死锁,然后当我尝试读取答案时,我得到一个System.ServiceModel.MessageHeaderException。不知何故,我从erp系统获得了成功和失败的信息,我无法读到这一点。我现在还没有为wcf启用日志记录。

如何防止此错误?我可以解释带有多个标题的邮件吗?

完成错误:

System.ServiceModel.MessageHeaderException: Multiple headers with name 'Action' and namespace 'http://www.w3.org/2005/08/addressing' found.

1 个答案:

答案 0 :(得分:1)

我在使用aif服务时遇到同样的错误,这基本上是基于dotnet wcf服务。我的服务操作返回一个类型的List DataContract,它本身具有List DataContract作为DataMember。

代码中存在导致响应标头损坏的问题

这是完整的元数据

<HMPackageItemDefaultsContract: Dynamics.Ax.Application.HMPackageItemDefaultsContractHMPackageItemDefaultsContract: Dynamics.Ax.Application.HMPackageItemDefaultsContractHMPackageItemDefaultsContract: Dynamics.Ax.Application.HMPackageItemDefaultsContractHMPackageItemDefaultsContract: Dynamics.Ax.Application.HMPackageItemDefaultsContractHMPackageItemDefaultsContract: Dynamics.Ax.Application.HMPackageItemDefaultsContractHMPackageItemDefaultsContract: Dynamics.Ax.Application.HMPackageItemDefaultsContractHMPackageItemDefaultsContract: Dynamics.Ax.Application.HMPackageItemDefaultsContractHMPackageItemDefaultsContract: Dynamics.Ax.Application.HMPackageItemDefaultsContractHMPackageItemDefaultsContract: Dynamics.Ax.Application.HMPackageItemDefaultsContractHMPackageItemDefaultsContract: Dynamics.Ax.Application.HMPackageItemDefaultsContractHMPackageItemDefaultsContract: Dynamics.Ax.Application.HMPackageItemDefaultsContractHMPackageItemDefaultsContract: Dynamics.Ax.Application.HMPackageItemDefaultsContractHMPackageItemDefaultsContract: Dynamics.Ax.Application.HMPackageItemDefaultsContractHMPackageItemDefaultsContract: Dynamics.Ax.Application.HMPackageItemDefaultsContractHMPackageItemDefaultsContract: Dynamics.Ax.Application.HMPackageItemDefaultsContractHMPackageItemDefaultsContract: Dynamics.Ax.Application.HMPackageItemDefaultsContractHMPackageItemDefaultsContract: Dynamics.Ax.Application.HMPackageItemDefaultsContractHMPackageItemDefaultsContract: Dynamics.Ax.Application.HMPackageItemDefaultsContractHMPackageItemDefaultsContract: Dynamics.Ax.Application.HMPackageItemDefaultsContractHMPackageItemDefaultsContract: Dynamics.Ax.Application.HMPackageItemDefaultsContractHMPackageItemDefaultsContract: Dynamics.Ax.Application.HMPackageItemDefaultsContractHMPackageItemDefaultsContract: Dynamics.Ax.Application.HMPackageItemDefaultsContractHMPackageItemDefaultsContract: Dynamics.Ax.Application.HMPackageItemDefaultsContractHMPackageItemDefaultsContract: Dynamics.Ax.Application.HMPackageItemDefaultsContractHMPackageItemDefaultsContract: Dynamics.Ax.Application.HMPackageItemDefaultsContractHMPackageItemDefaultsContract: Dynamics.Ax.Application.HMPackageItemDefaultsContractHMPackageItemDefaultsContract: Dynamics.Ax.Application.HMPackageItemDefaultsContractHMPackageItemDefaultsContract: Dynamics.Ax.Application.HMPackageItemDefaultsContractHMPackageItemDefaultsContract: Dynamics.Ax.Application.HMPackageItemDefaultsContractHMPackageItemDefaultsContract: Dynamics.Ax.Application.HMPackageItemDefaultsContractHMPackageItemDefaultsContract: Dynamics.Ax.Application.HMPackageItemDefaultsContractHMPackageItemDefaultsContract: Dynamics.Ax.Application.HMPackageItemDefaultsContractHMPackageItemDefaultsContract: Dynamics.Ax.Application.HMPackageItemDefaultsContractHMPackageItemDefaultsContract: Dynamics.Ax.Application.HMPackageItemDefaultsContractHMPackageItemDefaultsContract: Dynamics.Ax.Application.HMPackageItemDefaultsContractHMPackageItemDefaultsContract: Dynamics.Ax.Application.HMPackageItemDefaultsContractHMPackageItemDefaultsContract: Dynamics.Ax.Application.HMPackageItemDefaultsContractHMPackageItemDefaultsContract: Dynamics.Ax.Application.HMPackageItemDefaultsContractHMPackageItemDefaultsContract: Dynamics.Ax.Application.HMPackageItemDefaultsContractHMPackageItemDefaultsContract: Dynamics.Ax.Application.HMPackageItemDefaultsContractHMPackageItemDefaultsContract: Dynamics.Ax.Application.HMPackageItemDefaultsContractHMPackageItemDefaultsContract: Dynamics.Ax.Application.HMPackageItemDefaultsContractHMPackageItemDefaultsContract: Dynamics.Ax.Application.HMPackageItemDefaultsContractHMPackageItemDefaultsContract: Dynamics.Ax.Application.HMPackageItemDefaultsContractHMPackageItemDefaultsContract: Dynamics.Ax.Application.HMPackageItemDefaultsContractHMPackageItemDefaultsContract: Dynamics.Ax.Application.HMPackageItemDefaultsContractHMPackageItemDefaultsContract: Dynamics.Ax.Application.HMPackageItemDefaultsContractHMPackageItemDefaultsContract: Dynamics.Ax.Application.HMPackageItemDefaultsContractHMPackageItemDefaultsContract: Dynamics.Ax.Application.HMPackageItemDefaultsContractHMPackageItemDefaultsContract: Dynamics.Ax.Application.HMPackageItemDefaultsContractHMPackageItemDefaultsContract: Dynamics.Ax.Application.HMPackageItemDefaultsContractHMPackageItemDefaultsContract: Dynamics.Ax.Application.HMPackageItemDefaultsContractHMPackageItemDefaultsContract: Dynamics.Ax.Application.HMPackageItemDefaultsContractHMPackageItemDefaultsContract: Dynamics.Ax.Application.HMPackageItemDefaultsContractHMPackageItemDefaultsContract: Dynamics.Ax.Application.HMPackageItemDefaultsContractHMPackageItemDefaultsContract: Dynamics.Ax.Application.HMPackageItemDefaultsContractHMPackageItemDefaultsContract: Dynamics.Ax.Application.HMPackageItemDefaultsContractHMPackageItemDefaultsContract: Dynamics.Ax.Application.HMPackageItemDefaultsContractHMPackageItemDefaultsContract: Dynamics.Ax.Application.HMPackageItemDefaultsContractHMPackageItemDefaultsContract: Dynamics.Ax.Application.HMPackageItemDefaultsContractHMPackageItemDefaultsContract: Dynamics.Ax.Application.HMPackageItemDefaultsContractHMPackageItemDefaultsContract: Dynamics.Ax.Application.HMPackageItemDefaultsContractHMPackageItemDefaultsContract: Dynamics.Ax.Application.HMPackageItemDefaultsContractHMPackageItemDefaultsContract: Dynamics.Ax.Application.HMPackageItemDefaultsContractHMPackageItemDefaultsContract: Dynamics.Ax.Application.HMPackageItemDefaultsContractHMPackageItemDefaultsContract: Dynamics.Ax.Application.HMPackageItemDefaultsContractHMPackageItemDefaultsContract: Dynamics.Ax.Application.HMPackageItemDefaultsContract>}

项目没有用逗号分隔(,)。由于代码故障

contract = new HMPackageItemDefaultsContract();
switch (line.HMProductType)
{
    case HMInventType::Laboratory:

        hmLaboratoryDefault = HMLaboratoryDefault::findByPackageDefinitionLine(line);
        while select hmLaboratoryDefault
        {
            contract.parmCollectionDate(hmLaboratoryDefault.CollectionDate);
            contract.parmInstructionstoPatient(hmLaboratoryDefault.Instructions);
            contract.parmNotestoPharmacy(hmLaboratoryDefault.Notes);
            contract.parmSpecimenSource(hmLaboratoryDefault.HMSpecimenSource);

            list.addEnd(contract);
        }

    break;
在迭代时,

合同没有被实例化以将其添加到列表中。

在编译完成后,花了我3个小时才搞清楚,清理XPPIL并完成整个过程。

我刚刚发现还有一个失败的场景,当你让DataMemberberContract返回带有固定项目集及其相应整数值的枚举类型时,你返回一个超出界限的枚举整数值。

WCF没有提供任何特定于实际错误的错误消息,它只是失败并显示以下消息

Multiple headers with name 'Action' and namespace 'http://www.w3.org/2005/08/addressing' found.

希望能帮助那些遇到这种隐藏异常的人。