WCF、ASMX 基本 HTTP 绑定和 IIS

2024-01-12

我一直在使用 WCF“自”托管应用程序进行大量工作。最近,我被要求编写一个 Web 服务,其中调用客户端是一个名为“WGET”的基于 Linux 的程序。我想使用 WCF 而不是传统的 ASMX Web 服务。 Web 服务正在返回标准 XML 响应。我不确定这两种技术之间的重点细节,但我知道 WCF 是正确的途径。我创建了一个托管在 IIS 中的 WCF 服务(使用 basicHttpBinding)。

1.) 经典的 ASMX Web 服务(标准 HTTP POST/GET)是否使用 SOAP 来返回响应?我从 XSD 创建了一个用于 Web 服务响应的类。幕后到底发生了什么?是否只有特殊的 XML HTTP 标头知道如何处理响应?响应没有封装在 SOAP 中吗?传统的 ASMX Web 服务与我使用 .Net“XSD”程序生成的类完美配合。

2.) 我想使用 WCF 来提供此服务。使用 basicHttpBinding 有效吗?正如我所读到的,这是用于 ASMX 客户端的正确绑定。它使用 SOAP、标准 HTTP 标头还是其他内容?

3.) 这是一个愚蠢的问题,因为我没有做过很多 Web 服务编程。我注意到 ASMX 默认登录页面上有响应示例和调用功能的代码。当我使用 WCF 创建相同的服务时,我必须创建一个客户端应用程序来执行这些任务。有没有办法像经典的 ASMX 服务一样公开 WCF 端点,或者 WSDL 是唯一的途径吗?

一如既往,我非常感谢您的反馈。

谢谢, 布伦南


回答您的问题:

1.) 经典的 ASMX Web 服务(标准 HTTP POST/GET)是否使用 SOAP 来 返回响应?

是的。 ASMX 使用 SOAP 1.1 标准,该标准也在 WCF 中实现。

2.) 我想使用 WCF 来提供此服务。将使用 basicHttpBinding 工作?

The basicHttpBinding是模仿 ASMX 服务的完美匹配,是的。它像 ASMX 一样使用 SOAP 1.1,并且其行为应该与 ASMX 非常相似。

3.) 我注意到 ASMX 默认登陆页面上有以下示例 响应和代码来调用 功能。有没有办法 像经典一样公开 WCF 端点 ASMX 服务还是 WSDL 唯一 路线?

WCF 仅显示一个默认页面,让您知道确实存在服务。没有旋钮或选项可以打开以获得相同的 ASMX 样式页面(出于安全原因)。如果您需要的话,您必须自己做这件事。 WSDL / XSD 确实是 WCF 的最佳选择。

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

WCF、ASMX 基本 HTTP 绑定和 IIS 的相关文章

  • 当responseText包含有效的Xml时,IXMLHttpRequest.responseXml为空,没有解析错误

    我正在从中获取一些 XML政府网站 http www bankofcanada ca stats assets rates rss noon en all xml http www bankofcanada ca stats assets
  • 从经典 ASP 调用 .Net C# DLL 方法

    我正在开发一个经典的 asp 项目 该项目需要将字符串发送到 DLL DLL 会将其序列化并发送到 Zebra 热敏打印机 我已经构建了我的 DLL 并使用它注册了regasm其次是 代码库这使得 IIS 能够识别它 虽然我可以设置我的对象
  • 扩展 XSD 文件

    我有一个带有枚举类型的 XSD 文件 我想创建一个 扩展 XSD 文件 它添加一些额外的枚举 但其他方面的行为就像主 XSD 一样 例如 主 XSD 文件包含以下内容
  • 枚举扩展方法

    在vs2008中 是否可以编写适用于任何枚举的扩展方法 我知道您可以针对特定枚举编写扩展方法 但我希望能够使用单个扩展方法对每个枚举进行处理 这可能吗 是的 只需针对基础进行编码Enum类型 例如 public static void So
  • VB.NET 中的静态方法实现

    我很困惑Static在 VB NET 中的实现 在 C 中 我们可以创建静态类和静态方法来为我们的应用程序编写实用方法 现在 VB NET 让我们创建Module代替静态类 如果我们在模块中创建一个方法 默认情况下它会变成静态的 但在我的应
  • XSD 嵌套元素

  • 如何在 Linq to SQL 中使用distinct 和 group by

    我正在尝试将以下 sql 转换为 Linq 2 SQL select groupId count distinct userId from processroundissueinstance group by groupId 这是我的代码
  • 如何根据给定的点生成热图

    我想生成 Windows 形式的热图 我有一组点作为输入 如何以最简单的方式做到这一点 谢谢 基于此处已有的答案 此方法允许您指定Colors您希望用作最大和最小颜色 private Color HeatMapColor double va
  • 如何在完成之前从 ReplaySubject 获取最新值

    我需要一种方法来获取添加到 ReplaySubject 中符合特定条件的最新项目 下面的示例代码完成了我需要它做的事情 但感觉不是正确的方法 static void Main string args var o new ReplaySubj
  • 抛出并保留堆栈跟踪不符合代码分析所描述的预期

    进行代码分析给了我项目 CA2200 CA2200 重新抛出以保留堆栈详细信息 func 重新抛出捕获的异常并将其显式指定为参数 请改用不带参数的 throw 以保留最初引发异常的堆栈位置 我已经实现了该建议 但无论如何我似乎都得到了相同的
  • NuGet:包含 .pdb 文件并排除“Content”文件夹

    我已将以下行合并到 CI 构建中在每个构建上创建一个私有 NuGet 包 nuget pack C Projects Test Test vbproj OutputDirectory nas1 NuGet The 读取AssemblyInf
  • 防止重入并确保某些操作获取锁的正确方法是什么?

    我正在设计一个基类 当继承该基类时 它将针对多线程环境中的上下文提供业务功能 每个实例可能都有长时间运行的初始化操作 所以我想让这些对象可重用 为此 我需要能够 为这些对象之一分配上下文以允许其完成工作 防止对象在已有上下文的情况下被分配新
  • 当操作系统显示语言为非英语时获取本地时区标识符

    奇怪的是 TimeZone CurrentTimeZone StandardName根据计算机显示语言返回本地化名称 我想要一个可以提供给的程序化标识符TimeZoneInfo在下面的代码中 TimeZoneInfo timeZoneInf
  • 为什么 new String("Hello") 在 C# 中无效?

    制作背后的逻辑 原因是什么 String s new String Hello World 在 C 中非法 错误是 string String char 的最佳重载方法匹配有一些无效参数 我对 API 文档不感兴趣 我感兴趣的是为什么这是非
  • 为什么 C# 不支持类构造函数中的隐式泛型类型?

    如果编译器可以推断出泛型类型参数 C 并不要求您指定它 例如 List
  • 在 C#.NET 应用程序中使用 SQL Server 时间数据类型?

    如何使用 SQLtimeSQL Server 2008 中 C NET 中引入的数据类型 我一直在努力让它发挥作用 但没有成功 这是一个MSDN 文章 http msdn microsoft com en us library bb6751
  • 如何使用sql作为xml路径('')但保留回车符

    我有下面的代码 select select cast Narrative as Varchar max char 13 from officeclientledger where ptmatter matter and ptTrans 4
  • 什么时候值得使用 BindingSource?

    我想我非常了解 BindingSource 类的作用 即在数据源和 UI 控件之间提供一个间接层 它实现了 IBindingList 接口 因此还提供了对排序的支持 而且我已经经常使用它 没有太多问题 但我想知道我使用它的频率是否超过了应有
  • 控件的命名约定[重复]

    这个问题在这里已经有答案了 Microsoft 在其网站上提供了命名指南 here http msdn microsoft com en us library xzf533w0 VS 71 aspx 我还有 框架设计指南 一书 我找不到有关
  • 如何防止用户控件表单在 C# 中处理键盘输入(箭头键)

    我的用户控件包含其他可以选择的控件 我想实现使用箭头键导航子控件的方法 问题是家长控制拦截箭头键并使用它来滚动其视图什么是我想避免的事情 我想自己解决控制内容的导航问题 我如何控制由箭头键引起的标准行为 提前致谢 MTH 这通常是通过重写

随机推荐

  • LCOV 从代码覆盖率分析中排除整个包

    我使用 LCOV 作为代码覆盖率的图形方式来告诉我已经测试了多少代码 但是它包含我不关心的代码文件夹 并且它使我的覆盖率低于实际水平 有没有办法排除整个目录 让我可以忽略一堆我不关心的 cpp 文件 我知道关于 remove但这似乎不适用于
  • 使用带有history.pushstate和popstate的后退按钮时如何触发更改?

    对于 js 来说 我几乎是一个新手 所以如果我错过了一些非常简单的东西 我很抱歉 基本上 我已经对使用 History pustate 和 popstate 进行了一些研究 并且已经将查询字符串添加到了 url 的末尾 v images o
  • tk 之后无法输入

    如果有这段代码 import Tkinter as tk import tkFileDialog menu tk Tk res tkFileDialog askopenfilename un comment this line label
  • Android Facebook api 3.0错误:无法使用空调用包调用LoginActivity

    我正在尝试将 Android 应用程序与新的 facebook 3 0 api 集成 但出现以下异常 java lang RuntimeException 无法恢复活动 dk imu konnekt com facebook LoginAc
  • MySQLdb - 检查行是否存在 Python

    我正在尝试使用 python 检查是否存在与我的数据库同名的行 但无法完全获取它 这就是我正在尝试的 我知道连接是 wokring try cursor execute SELECT Name COUNT FROM Item Info WH
  • 如何解决 KeyError: 'A Secret key is required to use CSRF.' 错误在烧瓶应用程序中使用 wtform 时?

    我一直在尝试使用 Flask 和 wtforms 以及 firebase 数据库构建一个 Web 应用程序 但我不断收到错误消息 KeyError 需要使用 CSRF 的密钥 我不知道如何解决它 这是我的代码 from flask impo
  • 如何将 html5 canvas 图像转换为 json 对象?

    您好 我必须将一组图像转换为 json 对象 但是 作为第一步 我尝试对单个图像执行此操作 但我不知道 json 对象是否已创建 请帮我检查一下对象是否被创建 这是代码
  • C# Collection 选择属性的值与另一个属性的最小值

    所以假设我有一种类型Car有两个属性Speed and Color public class Car public int Speed get set public string Color get set 使用 LINQ 我可能会找到最低
  • Celery Worker 数据库连接池

    我正在独立使用 Celery 不在 Django 中 我计划让一种工作任务类型在多台物理机器上运行 该任务执行以下操作 接受 XML 文档 改造它 Make multiple数据库读取和写入 我正在使用 PostgreSQL 但这同样适用于
  • PredicateBuilder:嵌套在 .And() 内的 OR 条件

    我正在使用 PredicateBuilder 针对 Umbraco 节点列表构建查询来过滤搜索结果 我通过 QueryString 将搜索到的 ID 值作为字符串传递 然后将其与列表中每个 Umbraco 节点上的字符串字段进行比较以获取匹
  • 如何在 Symfony 中从编译器传递注入共享服务

    我正在尝试通过旨在替换 FOSRestBundle 中的服务之一的编译器通道注入令牌存储服务
  • R Shiny:如何在执行反应语句之前更新输入对象

    我正在基于很棒的 R Shiny 包构建一个探索性视觉应用程序 该应用程序要做的一件事是读取实值 测量 列并显示这些测量值的箱线图 此外 还有一个可选的selectInput小部件 允许用户选择group要深入研究的变量 这group变量基
  • 如何在 springboot 应用程序中启用 Cassandra CqlSession Metrics

    我想启用 cassandra cqlsession 指标 当尝试注册 cqlsession 指标时 它在 springboot 应用程序中提供了 optional empty 这里使用 cassandra datastax java 驱动程
  • 在 std::function 上递归应用 std::bind 的问题

    给定一个函数f x y z 我们可以绑定x到 0 得到一个函数g y z f 0 y z 我们可以继续这样做并得到h f 0 1 2 在 C 语法中 这将是 include
  • ScheduledThreadPoolExecutor 和 corePoolSize 0?

    我想要一个ScheduledThreadPoolExecutor如果没有工作要做 它还会停止最后一个线程 如果有新任务 它还会创建线程 并使线程保持活动状态一段时间 但是一旦没有更多的工作要做 它应该再次丢弃所有线程 我天真地将其创建为ne
  • 如何使用双浮点?

    我正在努力弄清楚如何告诉 Lisp 我想使用双浮点值 假设我有 let x 1 format t A x 3 0 这使 0 33333334 如果我想使用双浮点数 我尝试了以下方法 let x 1 declare type double f
  • 无法将 Google 帐户添加到 Android 模拟器

    我有一个将我的 Android 模拟器连接到 Gmail 时出现问题 即使我可以浏览网页 我也无法添加我的 Gmail 帐户 我去Accounts and Sync add account google sign in 然后输入我的gmai
  • Service Worker 和透明缓存更新

    我正在尝试为一个简单但旧的 Django Web 应用程序安装 ServiceWorker 我开始使用这个例子Chrome 团队的通读缓存示例 https googlechrome github io samples service wor
  • 如何从 Python 控制 Windows 应用程序

    我在 Windows PC 上安装了该应用程序 我想使用 python 启动该应用程序并选择下拉选项并在该应用程序中执行一些其他活动 我能够使用以下命令启动该应用程序os system命令 但我无法继续进行 我希望我的程序能够执行以下操作
  • WCF、ASMX 基本 HTTP 绑定和 IIS

    我一直在使用 WCF 自 托管应用程序进行大量工作 最近 我被要求编写一个 Web 服务 其中调用客户端是一个名为 WGET 的基于 Linux 的程序 我想使用 WCF 而不是传统的 ASMX Web 服务 Web 服务正在返回标准 XM