【问题标题】:Adding Web Service to an existing ASP .NET MVC 3 site将 Web 服务添加到现有 ASP .NET MVC 3 站点
【发布时间】:2014-07-21 11:10:55
【问题描述】:

场景

  • 使用实体框架和 SQL Server 后端的现有 ASP .NET MVC 3 站点
  • 添加使用 Xamarin 编写的 iOS 和 Android 本机客户端应用程序
  • 我的工作是创建一个 PCL,新客户端应用程序将使用它与后端交互(这几乎是 CRUD 操作)。

我有什么选择?

我已阅读:Xamarin 的 Web Services 介绍。看来我的选择是:

  • 不添加任何新服务,只需使用或添加控制器来处理对 ASP 站点的特定请求,并使用 .NET 的 HTTPRequest、WebClient 或类似 RestSharp 的 lib 使用 HTTP。
  • 添加一个 ASP .NET Web 服务,创建一个客户端将调用的代理。
  • 创建一个独立的服务来处理请求(相对于 ASP 站点的主机 - IIS),例如 WCF。

我倾向于前两个,因为它们不需要单独的服务,但是我想知道身份验证 - 我想必须使用基本身份验证(显然通过 TLS)并手动管理会话来验证客户端?

更新我 我读到自 .NET 4.0 以来,WCF 现在比 ASP .NET Web 服务更受青睐。

更新二 只需将服务添加到我的 Web 项目中,我就可以在 IIS 中将我的 WCF 与我的 ASP.NET MVC 站点并排托管。仍然不确定他们是否可以共享身份验证。

更新 III 我现在看到托管 HTTP API 的新方法是使用 ASP .NET Web API - 这只是一个 ASP 应用程序。 :)

【问题讨论】:

    标签: asp.net-mvc-3 wcf xamarin .net-4.5 asp.net-web-api


    【解决方案1】:

    我会推荐使用 Asp.NET WebApi。为什么?

    • 您有外部客户端,例如移动应用程序,尤其是那些 不在 Microsoft 堆栈中
    • 您所需的操作主要是 CRUD,它允许您创建一个不错的 RESTful API
    • HTTP 协议和 JSON 格式将为您提供最高程度的互操作性(我了解您正在使用 Xamarin,但存在框架可能无法在某些时候为您提供所需内容的风险,如果您需要放弃它,您在使用网络服务方面不会有任何问题

    【讨论】:

    • 谢谢,是否可以将 Web Api 项目与 MVC 项目分开,但在同一台服务器上运行它们并让 Web Api 只处理某些请求?
    • 要回答我自己的问题,我可以使用 sud 域作为 api ;)
    • 是的,是可能的。从 Visual Studio 2014 和最新版本的 MVC 和 WebApi 开始,您还可以将它们全部放在同一个项目中。
    • @LiviuM。很长一段时间以来,它都是可能的。我相信从 WebAPI 版本 1 开始。然而,当时它需要一些使用 MVC 路由的工作。我相信目前建议的方法是让 MVC 和 WebAPI 在您的 OWin 启动方法中以不同的路径启动(实际上是同一件事)。
    猜你喜欢
    • 2016-11-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多