c# - Web Api 和 Web ui 在同一应用程序/服务中

标签 c# angularjs azure asp.net-web-api azure-service-fabric

对于我的 AngularJS Web 应用程序,我使用 Azure Service Fabric 作为后端。为此,我创建了一个无状态 Web api 服务。

我是否必须将前端/客户端 AngularJS 代码放在相同的应用程序类型或相同的无状态服务中?为 Web UI 创建另一个无状态服务有用吗?

最佳答案

正如其他人提到的,您可以在任何您喜欢的地方托管您的 Angular Web 应用程序; Service Fabric 在这方面没有施加任何限制。

也就是说,在您的情况下,一个简单的解决方案是将您的前端 Web 应用程序和 Web API 放在同一个无状态服务中。基本上,您将其视为常规的旧 ASP.NET MVC 应用程序,并且 ASP.NET MVC 使得在同一个 MVC 项目中拥有 API 和 Web UI 变得相当容易。以下是这方面的几个示例:

具有 API 和 UI 的 ASP.NET 5 MVC 应用程序:https://github.com/Azure-Samples/service-fabric-dotnet-getting-started/tree/master/Services/Chatter

单页 jQuery 应用程序,具有使用 Katana 自托管的 API:https://github.com/Azure-Samples/service-fabric-dotnet-management-party-cluster/tree/master/PartyCluster

关于为什么需要Service Fabric来托管前端文件的问题。这里需要权衡。假设前端是一个 Web 应用程序,它是一个更大的 Service Fabric 应用程序的一部分(正如您的情况一样),最好使用同一 SDK 上的一组工具和相同的部署过程将所有内容集中在一个地方托管在同一集群上,而不是为应用程序的一部分提供完全独立的进程、工具、SDK 和托管环境。您还可以获得 Service Fabric 的所有优点,例如滚动升级、运行状况监控、高可用性和自动故障转移等。缺点是您无法获得 Azure 附带的 super 易于使用的 Web 应用程序工具应用服务。

关于c# - Web Api 和 Web ui 在同一应用程序/服务中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34707087/

相关文章:

c# - 如何抑制ClickOnce-Update提示?

c# - 在统一上使用 c# 访问 MySQL 数据库?

c# - 如何使用 TCP 在两个 Unity 应用程序之间进行通信?

javascript - 在 Angularjs 中完成页面加载后调用函数

azure - Get-AzADUser 在 Azure Devops MS 托管代理上返回空

c# - 保存 ChartControl 的图像而不在屏幕上显示它

javascript - 在 phantomJS 中使用 angularJS 函数

javascript - 向函数返回的数据添加样式

python-2.7 - Ansible Azure 模块

azure - 在 vm(vmware,azure) 上添加 opengl 支持以运行 Go Fyne 应用程序