是否可以在线发布带有数据库的 asp.net mvc Web 应用程序?

Posted

技术标签:

【中文标题】是否可以在线发布带有数据库的 asp.net mvc Web 应用程序?【英文标题】:Is it possible to publish an asp.net mvc web-application with a database online? 【发布时间】:2021-10-19 04:01:08 【问题描述】:

所以我正在学习 .Net 开发课程,作为自己的练习,我想编写一个可用于管理个人库的 asp.net mvc Web 应用程序。现在我知道我可以做到这一点,并发布它以供 iis 实际使用。但是我不知道,我找不到任何足够清晰的东西让我的初学者的眼睛发现,是否有可能(使用 iis 或其他东西,尽管出于预算原因最好免费)发布此应用程序这样我就可以在线访问它和数据库,如果我可以允许其他人也可以使用它。

此外,我不确定这些数据会存储在哪里。如果我也允许其他人使用它,我是否需要担心必须将所有这些数据存储在我的个人计算机上,或者担心支付云服务器来存储它?我知道我可能会担心一些我根本不需要担心的事情,但我想确保在开始之前我知道自己在做什么。

(或者,我可能会使用 wpf 桌面应用程序来代替,使用本地数据库,但我还不确定具有如此复杂数据库结构的 wpf 应用程序是否可行或可取,或者它可能很容易与他人共享。是吗?)

任何帮助和建议将不胜感激。提前致谢!

【问题讨论】:

您可以考虑使用 docker-compose,数据库在其中一个容器中运行,而 api/webapp 在另一个容器中运行。 youtube 上有很多关于如何做到这一点的教程,如果您使用的是 VS2019 或更高版本,您仍然可以在容器内进行调试 【参考方案1】:

我同意 Azure 的建议。如果你使用 Azure SQL 和 Azure App Service 等 PaaS 服务,那么部署和维护是微不足道和便宜的。恕我直言,摆弄容器要容易得多,实际运行虚拟机要简单得多,而且根本不需要任何网络配置。

这里有一个指南,应该会告诉你如何去做。

https://docs.microsoft.com/en-us/azure/app-service/app-service-web-tutorial-dotnet-sqldatabase

如果您对学习感兴趣,学习在云端使用 PaaS 是一项重要技能。

Docker / Kubernetes 也是未来,但根据您的要求,它们不必要地复杂

如前所述,您可以获得价值 200 美元的免费 Azure 计划。

在这 200 美元的信用额度内,您可以获得每月 8 美元的 Azure SQL 和免费的应用服务层

关于 WPF,请记住,迁移到 Web 应用程序并不容易,因此我建议您坚持使用 Web 应用程序。

最后,如果您想制作一个简单的应用程序,您应该尝试 Microsoft PowerApps,它们非常出色,可以满足大多数要求,构建起来非常简单,并且可以轻松地在 Web 或移动设备上运行。对于一个简单的网络应用程序,您只需要很少的代码。

【讨论】:

【参考方案2】:

您可以部署到 Azure(MS 云平台)。当您注册时,他们免费为您提供 200 美元,您可以选择提供的最低计划。该数据库也将来自他们的服务。部署过程并不难,所以你可以搜索一个教程(有很多),例如: https://www.youtube.com/watch?v=MP4zatl3jF8&ab_channel=kudvenkat 或者如果您喜欢阅读 https://www.developer.com/cloud/build-deploy-an-asp-net-core-app-to-azure-app-service/。

【讨论】:

【参考方案3】:

我的编程和网络规则是:“针对环回地址进行测试就足够了。”如果它在您的本地计算机上对环回有效,但在野外无效,那么您遇到的是网络问题 - 而不是编程问题!

“在线”的最大问题是获得可通过互联网访问的服务器。您的家庭网络可能落后于 2 个或更多 layers of NAT - 您的路由器和运营商级 NAT。如果是预期响应,网络流量只能通过 NAT。通过端口转发和 DynDNS 或购买静态 IP 地址之类的东西,获得随机请求将是一件很麻烦的事情。作为网络的初学者,从托管服务购买服务器会更容易。

关于数据将存储在哪里:嗯,Web 应用程序必须可以访问数据库。因此,理想情况下,与 Web 应用程序位于同一物理机或虚拟机上。

【讨论】:

以上是关于是否可以在线发布带有数据库的 asp.net mvc Web 应用程序?的主要内容,如果未能解决你的问题,请参考以下文章

ASP.NET MVC 与 XSL

带有 NoSQL 的 ASP.NET

带有 ASP.NET 服务帐户的 DPAPI

带有 Asp.net MVC 的 Kendo UI 图表

带有 ASP.NET 的 RIA

asp.net 在线编辑器(CKEDITOR)的内容显示问题