将Web应用程序+ sql db + windows服务部署到Azure

时间:2017-01-21 22:50:40

标签: c# azure azure-web-sites

我从未部署到azure,我有几个问题试图让它工作。我使用天蓝色的免费服务。

我有一个mvc网络应用程序,它是我制作的自定义日历,是我的个人项目。 Web应用程序允许您向我制作的本地数据库输入提醒和其他类型的事件。然后我创建了一个Windows服务,每分钟轮询数据库,检查当前时间是否有提醒或类似事件。如果有用户提醒的服务电子邮件和其他详细信息。本地一切都很漂亮,我想部署到网上展示它。

对我来说,部署一直是个问题。 我尝试将Web应用程序部署为云服务和Web应用程序+ sql server。然后我在更改Web应用程序中的连接字符串以匹配azures时遇到问题。所以我只是尝试打开应用程序本身,每页加载大约需要30秒。 VS解决方案有多个项目,因为它是一个多层应用程序(项目:数据库,DAL,BL,UI,Common)。

然后,我尝试将我的版本控制代码添加到TFS中的azure项目中。我喜欢我在源代码管理中保留的4个项目,但它只在azure中找到1个。我一遍又一遍地研究这个问题,无法在其上找到任何东西。

我还没有进入Windows服务,因为我无法让app / db一起工作。

TLDR; Web应用程序将数据输入数据库。该服务根据每个用户的匹配日期查找输入的数据和电子邮件。我是第一次使用azure进行部署,并且无法使用web应用程序连接到azure中的数据库以正常工作,并且部署时应用程序速度非常慢。

主要问题是TFS没有显示azure中的所有项目,我是否包括解决方案中的所有项目或仅包含UI,获取连接字符串以匹配azure。我总体上有点迷失了......我怎么能把这一切都搞定?

1 个答案:

答案 0 :(得分:1)

当您说Web App时,我认为您的意思是Azure App Service(https://azure.microsoft.com/en-us/services/app-service/)。

通过导航到应用程序设置>,可以在门户中为您的App Service设置连接字符串。资源下的连接字符串。它应该是一个常规的连接字符串,你唯一需要做的就是确保服务器名称是正确的,并且你有一个用户和密码集,它可以让你访问数据库。如果您在门户中使用Wep Abb(Web + SQL)创建了资源,那么您在那里输入了数据库的用户和密码,您可以在connectionstring中使用它们。您可能希望稍后将专用用户添加到SQL Server,并将其专门用于此应用程序。

App Services具有内置功能,可让您从源代码管理中自动部署代码。您可以将其设置为在提交到repo中的特定分支时将MVC代码构建和部署到App Service。导航到门户中App Service下的部署选项。在这里,您将其设置为目标TFS回购。您的问题可能是因为您的仓库中有4个项目,如果所有4个项目都是Web项目,则构建脚本不会知道要构建和部署哪个项目。如果您需要全部4个运行,那么您需要4个App Services。您可以修改脚本但需要一些工作。 https://github.com/projectkudu/kudu/wiki/Custom-Deployment-Script

另一个选项可能是使用Continuous Deploy功能设置Visual Studio Team Service以便为您工作(它在预览中但工作正常)。

对于应该轮询数据库的持续运行的服务,我建议您查看Web Jobs来为您执行此操作。 https://docs.microsoft.com/en-us/azure/app-service-web/websites-dotnet-webjobs-sdk-get-started。 Web作业将在您运行站点的同一App Service实例上运行。

最后,要从Azure发送电子邮件,您需要使用电子邮件服务。 SendGrid与Azure App Services配合使用,并且易于设置。