SOAP 信封中的 WCF 和输入参数顺序

2023-12-28

我在使用 webHttpBinding (soap 1.1) 的 WCF Web 服务中遇到“对象引用未设置为对象实例”错误 我注意到,如果您按特定顺序输入参数,则不会引发错误。

i.e.

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:not="http://schemas.globalfoundries.com/NotificationService">
   <soapenv:Header/>
   <soapenv:Body>
      <not:NotifyWorkflowItemUpdate>
         <not:userIDs>testUserID</not:userIDs>
         <not:taskID>testTaskID</not:taskID>
         <not:taskType>testTaskType</not:taskType>
         <not:status>testStatus</not:status>
         <not:appID>testAppID</not:appID>
         <not:message>testMessage</not:message>
      </not:NotifyWorkflowItemUpdate>
   </soapenv:Body>
</soapenv:Envelope>

但是,如果我更改请求模板中输入参数的顺序,则会收到上述错误。即(注意消息和 userIDs 参数已切换)

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:not="http://schemas.globalfoundries.com/NotificationService">
   <soapenv:Header/>
   <soapenv:Body>
      <not:NotifyWorkflowItemUpdate>
     <not:message>testMessage</not:message>
         <not:taskID>testTaskID</not:taskID>
         <not:taskType>testTaskType</not:taskType>
         <not:status>testStatus</not:status>
         <not:appID>testAppID</not:appID>
         <not:userIDs>testUserID</not:userIDs>
      </not:NotifyWorkflowItemUpdate>
   </soapenv:Body>
</soapenv:Envelope>

为什么会发生这种情况?请求参数是否通过顺序(而不是名称)映射到 .Net 方法参数?我是否必须在服务合同上指定一个属性才能使命名参数映射成为可能?


你需要使用XmlSerializer 格式WCF 服务接口中的类。

[ServiceContract, XmlSerializerFormat]
public interface IGoodMessageService
{
    ...
}

问题和解决方案在此链接中进行了解释:http://neimke.blogspot.com.tr/2012/03/serialization-ordering-causes-problems.html http://neimke.blogspot.com.tr/2012/03/serialization-ordering-causes-problems.html

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

SOAP 信封中的 WCF 和输入参数顺序 的相关文章

随机推荐

  • pyodbc执行变量变为@P1

    嗨 我正在做类似的事情 pyodbc extension cursor execute select a from tbl where b and c x y 查询中的某些值由变量提供 但有时该变量被解释为 P1在查询中 例如 import
  • 黄瓜排序给定、何时、然后(Given、When、Then、When、Then)

    作为一名端到端自动化测试人员 我一直认为 Give When Then 语句 使用 Cucumber 时合并到 Gherkin 语言中 应该只按 1 Given 2 When 3 Then 的顺序出现 即测试不应遵循 例如 Given Wh
  • jquery 会干扰 php 吗?

    我试图限制评论和回复评论 并在达到限制后显示错误消息 我已成功限制评论和评论回复 并在仅提示评论而不是评论回复时成功提供错误消息 评论回复有一点 jquery 与它们一起工作 所以这是我能看到的唯一会导致消息不显示的东西 除了当前使用的方法
  • 在 models.py 文件中获取当前登录的 Django 用户?

    我正在尝试创建一个模型 该模型存储有关文章的基本信息 还存储当前登录用户的名称 这可能吗 或者是需要在views py 文件中完成的事情 这是我的代码 from django db import models from time impor
  • 我们是否可以使用一个 RowMapper 对象来获取结果,而不是每次都创建对象?

    当从数据库中获取结果时SpringJdbcTemplate everywhere I have seen that they are passing the new object of 每次都使用 RowMapper 这是必需的吗 或者我们
  • 适用于 Android 的 WebP [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 有关于如何在 Android 上使用 WebP 的示例吗 我试图获取 webp 图像列表并在带有图像视
  • $_SERVER['REMOTE_ADDR'] 可信吗?

    我有一个网站 只有几个人可以访问 所以登录的IP数量非常有限 登录的 管理员 提交的所有内容都会发送到取决于其 IP 地址的特定文件夹 同样 他们无法通过代理或任何其他方式访问该网站 因为允许的 IP 范围有限 我可以信任吗 SERVER
  • PHP fputcsv 编码

    我使用 fputcsv 创建 csv 文件 我希望 csv 文件位于 windows1251 ecnding 中 但找不到解决办法 我怎样才能做到这一点 干杯 Excel 文件的默认编码是机器特定的 ANSI 主要是windows1252
  • 如何更改苹果地图(MKMapView)背景颜色?

    我需要一个带有黑色主题的 iOS 应用程序 并且非常想让显示的 Apple 地图也为黑色 我在本机文档中没有看到任何有关更改 MKMapView 外观的内容 我用 Google 搜索了该主题并尝试更改 MKOverlayView 但是 我找
  • 如何在不停机的情况下将自定义域从一个 Firebase 项目移动到另一个项目?

    我有一个 firebase 项目 通过自定义域为实时用户提供服务 我需要将自定义域移动到在不同的 Firebase 项目中运行的新版本的应用程序 如果我删除自定义域并将其添加到另一个 Firebase 项目中 需要多长时间才能反映更改 如何
  • 正则表达式使用 regex_search 获取各种结果

    我只想获取给定字符串的结果 include
  • Microsoft Git Provider 和 Visual Studio 2012 无法启动配置的比较工具

    我正在使用最新的 Visual Studio 2012 Update 2 并且我已经安装了官方适用于 Git 的 Visual Studio 工具 https marketplace visualstudio com items itemN
  • 当我移动相机时,纹理的边界上会出现白线(或空格)。 Java、OpenGL

    纹理绘制不正确 正如我所看到的 程序改变了像素的顶线和底线 它会更改左列与右列 如果纹理是空的 比方说 在顶部 但底部有黑色像素 当您向上或向下 移动相机 时 您会看到底线变空 顶线时不时变黑 因此 当您向左或向右移动时 它也会更改列 为了
  • Android EditText,软键盘显示/隐藏事件?

    是否可以捕获 EditText 的软键盘显示或隐藏的事件 您好 我使用了以下解决方法 至于我的内容视图是 LinearLayout 的子类 可以是任何其他视图或视图组 我会重写 onMeasure 方法 如下所示 Override prot
  • PySpark dataframe - 如何将字符串变量传递给 df.where() 条件

    我不确定这在 pyspark 中是否可行 我相信这应该只是我没有在这里获胜 要求 引入 FNAME 和 LNAME 为 null 或 0 的任何记录 预期结果 结果是前两行 df sqlContext read format com dat
  • 自定义导航标题偏移 ios 11

    我有一个自定义导航项标题 它只是两个标签 一个在另一个之上 从 xib 文件加载 它是通过调用以下方法加载的 class Utilities Title and subtitle format custom title in Navigat
  • 实体框架 3.5 中的左连接

    我正在尝试在实体框架 3 5 上进行左连接 但我无法这样做 from i in from ta in context test attempt join uf in context user flag on ta users USERID
  • 给房产最好的命名? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • Android使用AsyncListDiffer时如何对RecyclerView列表进行排序?

    我有一个显示 CardView 列表的 RecyclerView 我最近将项目从使用 RecyclerView 适配器切换为使用 AsyncListDiffer 适配器 以利用后台线程上的适配器更新 我已经转换了列表的所有以前的 CRUD
  • SOAP 信封中的 WCF 和输入参数顺序

    我在使用 webHttpBinding soap 1 1 的 WCF Web 服务中遇到 对象引用未设置为对象实例 错误 我注意到 如果您按特定顺序输入参数 则不会引发错误 i e