将网站发布到Azure有两种方法 - 通过简单的发布功能和部署为云服务。我在解决方案中也有一个辅助角色,因此,我选择了Cloud Service而不是简单的Publish网站功能。
但我对云服务非常失望。首先,部署为云服务所需的时间比简单的Publish网站多10倍。第二个问题 - 每次我想部署时,都必须将web.config中的连接字符串更改为SQL Azure(而不是本地SQL Server)。网站发布能够为部署设置必要的SQL连接字符串。也许我做错了什么,部署可以在10秒内完成并存在设置不同连接字符串的能力(如网站发布)?
我认为只有云端员工角色和网站部署为网站,没有云服务......
答案 0 :(得分:4)
首先,我强烈建议您通过此问题比较Azure网站和云服务:What is the difference between an Azure Web Site and an Azure Web Role
现在回答你的问题:
首先,部署为云服务需要10倍的时间, 而不是简单的发布网站。
必然会发生这种情况,因为当您部署云服务(例如通过Visual Studio)时,会发生导致延迟的事情:
这两件事都不会发生在网站上。
第二个问题 - 每当我想部署时,我都要改变 web.config中的连接字符串到SQL Azure(而不是我的本地SQL) 服务器)。网站发布能够设置必要的SQL连接 部署的字符串。也许我做错了什么,部署可以做到 10秒并且存在设置不同连接字符串的能力(如 网站发布)?
你本身没有做错任何事。您的web.config文件被捆绑到包文件中,因此在对web.config文件进行任何更改后,您需要重新创建包并更新部署(包括上传到blob存储)。
您的问题的一个可能解决方案是使用config transformation
并让您的web.config.release
文件包含生产数据库的连接字符串。在发布模式下构建项目时,web.config文件中将有正确的连接字符串。
我认为只将云工作者角色和网站部署为 网站,没有云服务......
这当然是一个可行的选择。另一种选择是研究WebJobs
。与Worker Roles一样,它们用于处理后台处理工作负载,但在部署时具有相同的网站便利性。您也可以发现此博客文章也很有用:http://www.hanselman.com/blog/IntroducingWindowsAzureWebJobs.aspx。