c# - 使用 ASP.NET MVC 作为 Web 服务

标签 c# asp.net-mvc web-services rest

有没有人有将 ASP.NET MVC 项目用作 Web 服务的经验?

即在没有 View 的情况下使用 ASP.NET MVC,因此其他应用程序可以使用 URL 来 GET 或 POST 到 Controller 中的操作。

有人用过吗?如果是这样,不使用 Web 服务项目有什么缺点吗?

提前谢谢大家!

最佳答案

这实际上取决于您正在编写的应用程序类型。实际上,我会反驳 LukLed 的立场——基于 SOAP 的服务更适合内部客户端,当您想要支持诸如 Windows 身份验证或不同协议(protocol)(如 TCP 或 MSMQ)之类的东西时。

围绕特定“资源”使用更具网络风格的 GET 和 POST 开始让您进入 REST architectural style .这种技术对我来说有几个明显的优势:

  • 响应通常较小,尤其是在使用 JSON 等轻量级格式时
  • 由于请求和响应的简单性,这使得它更容易在移动/ native 应用程序中使用(例如,参见 Twitter's API)
  • 您创建的服务可以是自描述和可发现的,因为您可以像普通网页一样链接到 API 的其他部分。

特别帮助我理解这里权衡的一篇文章是 Martin Fowler 的 "Steps Toward the Glory of REST."尽管如此,它可能适合也可能不适合您的应用。

如果您确实选择构建更基于 REST 的服务,一定要考虑使用 ASP.NET Web API正如其他人提到的那样,内置到 MVC4 中。它目前处于测试阶段,但微软认为它足够好,可以授予它上线许可证。

更新:

自 ASP.NET Core 以来,ASP.NET Web API 已集成到 MVC 6 项目中。 https://wildermuth.com/2016/05/10/Writing-API-Controllers-in-ASP-NET-MVC-6

关于c# - 使用 ASP.NET MVC 作为 Web 服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10778377/

相关文章:

c# - IsWebSocketRequest 不能在单声道中工作

.net - 在 IIS6 上发布 MVC 应用程序时出现问题

json - 如何以更简洁的方式将 JSON 格式的请求从 R 中的 URL 获取 JSON 数据发送到 data.frame 中?

.net - 让卡西尼在本地机器上工作时出错

c# - 当我对一个程序进行采样分析时,它实际上运行得比不进行分析更快,这是怎么回事?

c# - Quickbooks 在线集成 c#

c# - 创建永不返回的任务的最简洁方法是什么?

asp.net-mvc - ASP.NET MVC 中 UpdateModel 的正确行为是什么?

javascript - 如何使用ajax获取json数据

php - Google Geolocation API - 您已超出此 API 的每日请求配额