Visual Studio 选项:ASP.NET Web 服务和 WCF 服务之间有什么区别

2023-11-30

我发现有两个选项可以在 Web 服务中使用......显然是 WCF 和 ASP.NET Web 服务。有什么不同?我最近才开始接触 WCF,过去也接触过一些 Web 服务,但我当然不是专家。


很容易知道其中的差异。

ASP.NET Web Method 被称为 ASMX [因为文件扩展名](检查 4GuysFromRolla 关于这一点,他们有一个很好的教程)

这项技术使您可以将方法公开为 Web 服务,这样您就可以从任何地方连接它(到 WS)并使用它(方法)。但...你无法保护服务器和客户端之间的数据,例如,您可以以清晰的模式发送大文件等......

[注意] 你可以使用证书来保护对 Web 服务的访问,但这很痛苦而且相当复杂,通常在 ASMX 中我们使用用户名/密码来授予对方法的访问权限(再次......以纯文本形式!)

In WCF,您正处于 Web 服务的不同世界,这是 .NET 中(迄今为止)公开服务的最佳技术(你能看到区别么... Services! not 网页服务),WCF不需要IIS来运行,它可以作为服务器上的系统服务运行,使用控制台环境(如命令行),以TCP/IP模式等,所以我们说WCF是一个Service,不是 Web 服务。请记住,ASMX 需要 IIS 才能运行,并且只能在 Web 服务器上托管运行。

使用 WCF,您可以使用 SSL 来加密通信(要在 ASMX 中执行此操作,您需要使用WSE- Web 服务增强)并且实现它非常容易,您可以安全地发送大文件(要在 ASMX 中执行此操作,您需要使用MTOM- 消息传输优化机制)。

您只需更改一行代码即可设置传输首选项,甚至,如果您愿意,还可以更改 XML 配置文件,安全性要高得多,等等:)

希望您对此有一个更好的总体概述,但还有更多。

底线:要公开不需要保护的 Web 服务,您可以使用 ASMX,完全没问题,但如果您需要以某种方式保护通信,请在 WCF 中进行!

link: 您可以在这里阅读两种服务之间的一些性能比较

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

Visual Studio 选项:ASP.NET Web 服务和 WCF 服务之间有什么区别 的相关文章

随机推荐

  • 快速访问 Angular Http Post 数据

    我在访问从 Angular http 服务传递到express js 的数据时遇到了问题 我正在使用 http 服务 http post someUrl data config then successCallback errorCallb
  • svn 不提交 .o 文件,但为什么呢?

    我发现 svn 默认情况下不会提交我的 o 文件 我检查了 dir 属性 没有找到任何 o 特定规则 是否有 svn 默认情况下不提交的文件列表 如 o 查看配置文件中的 global ignores 该文件在 nix 系统上的标准位置是
  • 如何从 TextInputLayout 中删除水平填充?

    迁移到最新版本的 Material Components 后 1 1 0 alpha09 我注意到TextInputLayout有一些填充水平填充 我的目标是实现旧样式的文本字段 其中没有背景或轮廓框 所以我扩展了其中一种样式 即Widge
  • mysql选择前n个最大值

    如何从表中选择前 n 个最大值 对于这样的表 column1 column2 1 foo 2 foo 3 foo 4 foo 5 bar 6 bar 7 bar 8 bar 对于 n 2 结果需要为 3 4 7 8 下面的方法仅选择每组的最
  • 如何按值对字典进行排序?

    我经常必须按值对字典 由键和值组成 进行排序 例如 我有一个单词和相应频率的哈希值 我想按频率排序 有一个SortedList这对于我想映射回单词的单个值 例如频率 很有用 排序字典按键而不是按值排序 有些人诉诸于定制类 但是有没有更干净的
  • Antlr4 无法正确识别 unicode 字符

    我有非常简单的语法 尝试将 与标记 E CODE 相匹配 我已经使用 TestRig 工具 带有 tokens 选项 对其进行了测试 但解析器无法正确匹配它 我的输入文件采用无 BOM 的 UTF 8 编码 并且我使用了 ANTLR 版本
  • 无法在 MinGW 上安装 SDL,获取“对 WinMain@16 的未定义引用”

    我正在尝试在 MinGW 上安装 SDL 我已经从以下位置下载了 SDLhere the SDL2 devel 2 0 0 mingw tar gz链接 然后复制内容SDL2 2 0 0 x86 64 w64 mingw32 bin inc
  • 为多个非第一个参数运行具有多个值的函数

    在 R 中 如果我有一个函数 myfun lt function ys T N beta gamma sigma 其中 beta 和 gamma 是标量 如果我有 ys T N 和 sigma 的固定值 但有 beta 值的向量和 gamm
  • SQL 正则表达式最后一个字符搜索不起作用

    我使用正则表达式来查找特定搜索 但最后一个分隔符被忽略 必须搜索 49213 A Z 但搜索 49213 A Z SELECT FROM table WHERE data REGEXP 49213 A Z 你为什么使用 在模式中 为什么 S
  • Enum.TryParse 奇怪的行为

    为什么这个测试能通过 TestEnum 不包含值为 5 的选项 所以这个测试应该会失败 但事实并非如此 private enum TestEnum FirstOption 2 SecontOption 3 Test public void
  • JPA - 主键前缀

    我们有一个表 其中 ID 由触发器生成 ID 年 月 顺序 我通过 JPA 映射了表 我也想在我的代码中使用相同的 PK 生成 我尝试了以下选项 Id SequenceGenerator name assetSeq sequenceName
  • 如何仅使用 CSS 禁用链接

    有没有办法使用 CSS 禁用链接 我有一堂课叫current page并希望禁用此类的链接 以便单击它们时不会发生任何操作 From 这个解决方案 aria current page pointer events none cursor d
  • 从使用 AJAX 填充的下拉列表中获取值

    我已经使用 AJAX 填充了 ASP net 下拉列表 现在我需要使用 C 方法获取要存储到数据库中的 Id 我正在使用 LINQ 这是我的网络方法 WebMethod public static ArrayList GetLanguage
  • React Js:设置来自同级组件的输入值

    I am learning ReactJS and trying to develop small CRUD form using it At this point I am trying to set input values from
  • 将 DataTable 转换为通用列表?

    public static IList
  • 通过 SSL 访问网页时,IE8 和 IE9 中的字体无法加载

    我正在为我的网站使用网络字体 使用 Spring 为 Apache Tomcat 6 服务器制作 我将我的字体包含在我的 css 文件中 字体为 font face font family FontAwesome src url fonts
  • 在 C 的 main 中调用函数后定义和声明该函数是否可移植?

    我发现 C 和 C 之间与函数定义 声明相关的以下差异 在 C 中 如果我在声明和定义函数之前调用它 我会收到错误消息 函数名称是无效标识符 这对我来说很好 因为它听起来很合理 在使用 Visual Studio 编译器的 C 语言中 当我
  • 无法下载我的应用程序在 Google Drive 上创建的文件,但可以获取该文件的元数据

    我遵循了 google Drive sdk 中提到的所有步骤 我在我的设备 android 运行 jelly bean 上创建了一个示例应用程序 并且能够将文件上传到驱动器 当尝试下载同一文件时 我能够获取元数据 如 fileID file
  • Kafka Producer - 默认支持多线程?

    我是卡夫卡的新手 我使用 kafka 2 9 2 0 8 1 1 创建了示例 kafka 同步生产者和消费者组程序 所以我的问题是 我是否需要向生产者添加多线程代码 如 Consumergroup 类 以支持大量请求 我读到生产者发送方法是
  • Visual Studio 选项:ASP.NET Web 服务和 WCF 服务之间有什么区别

    我发现有两个选项可以在 Web 服务中使用 显然是 WCF 和 ASP NET Web 服务 有什么不同 我最近才开始接触 WCF 过去也接触过一些 Web 服务 但我当然不是专家 很容易知道其中的差异 ASP NET Web Method