部署 asp.net 网站到 Azure
部署asp.net网站到Azure
前言
前些天一直在写一个单页面web应用程序,终于完成了,于是考虑发布到云服务器。本人没有AWS账号,遂本打算使用谷歌云。参考文档后发现官方文档给出的方式为在visual studio上使用Cloud Tools for Visual Studio插件,然而该插件似乎只支持vs2017,无奈只能改用Azure。后续我也会继续探索在Google上部署ASP.NET应用,毕竟Azure只给一个月的免费时间,只有升级账户后才能享受一年的免费时间。
我们开始吧
这是小白的第一次使用,所以只是我自己的方法和顺序,仅供参考。如果有大佬有更方便快捷的方法欢迎提供,如有疏漏错误也烦请指出。谢谢!
建立数据库
首先我们需要在Azure上新建一个数据库。这个过程参考了这篇文章。
打开Azure首页后搜索 sql 数据库,选择 sql 数据库并转到。

然后我们添加一个数据库。我的里面已经有了一个数据库实例,如果没有的话界面可能会和我的不太一样。

打开以后大概长这个样子:

从上到下依次填入信息。
* 订阅:如果是免费账户似乎只有这一个选项,原谅我没有见识过付费账户长啥样。
* 资源组:如果你之前有建立过,可以选择之前建立的资源组或新建资源组。如果没有那只能新建一个了。新建时可以起一个自己喜欢的名字。
* 数据库名称:可以起一个自己喜欢的名字,不能是之前有过的。
* 服务器:如果之前建立过,可以选择之前的或新建一个。如果没有就新建一个新的吧。点击新建后会在右边显示出来:

* 服务器名称:这个相当于你的数据库服务器的域名,所以必须是独一无二的
* 服务器管理员登录:数据库管理员的账号名,在以后登录数据库进行连接和管理的时候用它作为用户名。
* 密码:登录数据库的密码,与前者相对应。
* 位置:服务器所在位置。我选择了距离我最近的位置,大家可以按需自行选择。(虽然是离我最近的位置但是访问速度依然不快)
* 允许 Azure 服务访问服务器:这个一定要选上,以允许你的网站使用建立的数据库服务器。
* 想要使用 SQL 弹性池:这个我用不上,大家可以自行按需选择。
* 计算 + 存储:这个可以用来配置数据库的大小,大家可以按需进行调整。打开以后是这个样子的:

一般情况下就可以点击左下的 查看 + 创建 来建库了。

如果还有其他需求可以点 Next: 其他设置> 进行设置。
然后等配置完成,在 sql 数据库 界面就出现了刚刚建立的数据库了。

点击名称,可以转到详细信息页面:

右上方的服务器名称就是待会用来连接数据库的服务器名称。
点击连接字符串可以显示数据库连接字符串格式,使用时需要手动替换掉数据库管理员用户名和密码。

ASP.NET 项目连接数据库
使用刚刚的数据库连接字符串,替代你的项目里的数据库连接字符串,providerName 依然可以使用 System.Data.SqlClient。此时你的项目已经在使用你在Azure上的数据库了。
然而,现在这个数据库还是空的,需要建表,而且现在也不能方便的管理数据库。此时需要在 visual studio 上或 Microsoft SQL Server Management Studio 上连接数据库进行管理。
在visual studio上连接远端数据库
此处以 visual studio 2019 为例。点击服务器资源管理器上的添加按钮来新建一个连接:

点击 Azure, 登录你的Azure账号,下面会显示出来你的账号中的数据库实例。

选择你想连接的数据库,服务器名称即在数据库详情里看到的服务器名称,身份验证选择 SQL Server身份验证,用户名和密码就是建立数据库的时候配置的数据库管理员账户和密码(和连接字符串里替换的那个一样)。然后连接即可。
接下来即可对数据库进行管理,建表什么的,然后就可以使用了。
在Microsoft SQL Server Management Studio上连接远端数据库
下面是以 Microsoft SQL Server Management Studio 19 为例的演示,其他版本大同小异。
打开 Microsoft SQL Server Management Studio 19,出现 连接到服务器 对话框。

* 服务器类型:选择 数据库引擎
* 服务器名称:就是熟悉的那个服务器名称,Azure 数据库详细页面里那个。
* 身份验证:选择 SQL Server 身份验证。
* 登录名:这里需要注意,需要填写 你的数据库管理员用户名@服务器名称,不能只填写管理员用户名。
* 密码:嗯,就是那个密码。
然后连接,就可以了。
发布网站
折腾好数据库结构后就可以发布网站了(还没有在数据库建表的话现在快去建表)。如果你希望直接迁移数据库的话,可以直接在visual studio中使用数据库迁移。由于我不想把测试时的乱七八糟的数据上传,所有没有用。如需要请自行搜索吧,参考的那篇文章里也有一些说明。发布的步骤参考了微软官方文档。
首先要确保你所有的资源都已经包含在项目内了,否则发布后会出现找不到资源的情况。在本地测试时可能路径在同一个文件夹中不会出现错误,但是发布到远端时,没有包含在项目中的资源是不会被上传到服务器的,这里需要注意。
在解决方案的web项目上 右键 > 发布(在类库上右键是没有发布的)。

选择第一个应用服务。可以选择新建或现有的。此处选择新建:

点击发布后会让你登录Azure账户(已经登录的可以省去此步骤)。之后会出现一些应用的设置:

可以起一个响亮的名字,资源组选择你要发布到的资源组,其他按(bao)需(chi)选(mo)择(ren),然后点击创建。
稍候,vs会在发布成功后自动在浏览器中打开发布的网页。以后都可以登录这个URL进行访问啦!
在 Azure 的所有资源中可以看到所有的资源。不只是刚刚发布的网站,而且包括其他时候发布到各个资源组里的各种东西。我这里只有这一个项目。

总结
微软的全家桶服务让网站的开发维护和发布变得很简单顺畅,过程并不难。要是Azure的免费时间给的再宽泛一些就更好了。
最后祝大家中秋快乐!
部署 asp.net 网站到 Azure的更多相关文章
- Windows Azure 入门 -- VS 2015部署 ASP.NET网站(项目) 与 数据库
Windows Azure 入门 -- 部署 ASP.NET网站(项目) 与数据库 https://www.dotblogs.com.tw/mis2000lab/2015/12/24/windowsa ...
- IIS 7 Web服务器上部署ASP.NET网站(转)
IIS 7 Web服务器上部署ASP.NET网站小记 摘自:http://swanmsg.blog.sohu.com/162111073.html 网上查找了很久关于iis7配置asp.net配置问题 ...
- 如何在IIS6,7中部署ASP.NET网站
http://www.cnblogs.com/fish-li/archive/2012/02/26/2368989.html 阅读目录 开始 查看web.config文件 在IIS中创建网站 IIS6 ...
- 如何在IIS6,7中部署ASP.NET网站(转载)
查看web.config文件 web.config通常会放在网站的根目录,这个文件中包含了一最重要的网站运行参数.比如: connectionStrings,httpHandlers,httpModu ...
- 在IIS中部署Asp.Net网站
在IIS中部署Asp.Net网站 1.添加IIS或者删除IIS,在控制面板=>程序和功能=>打开或关闭功能 启动iis,右键计算机=>管理=>服务和应用程序=>Inter ...
- Ubuntu 12.04使用uginx+fastcgi-mono-server2部署asp.net 网站
Ubuntu 12.04使用uginx+fastcgi-mono-server2部署asp.net 网站 1.安装nginx和mono-fastcgi-server2 sodu apt-get in ...
- 【转】windows下nginx+mono+fastCGI部署asp.net网站
原文链接:http://www.cnblogs.com/amityat/archive/2011/08/23/2150153.html 1,什么是nginx 简介Nginx ("engine ...
- 在IIS6,7中部署ASP.NET网站[转]
阅读目录 开始 查看web.config文件 在IIS中创建网站 IIS6 添加扩展名映射 IIS6 无扩展名的映射 目录的写入权限 SQL SERVER的配置 在IIS7中部署ASP.NET程序 8 ...
- 在IIS6,7中部署ASP.NET网站
查看web.config文件 ASP.NET网站与一般的桌面程序不同,不是拷贝过来就能运行的(数据库连接除外). 要想运行它,通常需要一些配置过程.但是,我们到底需要配置什么呢?答案是:查看web.c ...
随机推荐
- python web框架Flask——csrf攻击
CSRF是什么? (Cross Site Request Forgery, 跨站域请求伪造)是一种网络的攻击方式,它在 2007 年曾被列为互联网 20 大安全隐患之一,也被称为“One Click ...
- switch...case...语句分析(大表跟小表何时产生)
一.switch...case...的格式 switch(表达式) { case 常量表达式1: 语句; break; case 常量表达式2: 语句; break; case 常量表达式3: 语句; ...
- MySQL基础之数据管理【2】
where条件筛选记录 select id,username,age from uesr where id=5; alter table user add userDesc varchar(100); ...
- 【JavaWeb】EL表达式
EL表达式 EL表达式语言,用于简化JSP的输出: EL表达式的基本语法:${表达式}: 示例:<h1>学生姓名:${student.name}</h1> 作用域对象 忽略书写 ...
- emacs c/c++ 中使用的命令大杂烩
emacs c/c++ 中使用的命令大杂烩 注释,缩进,光标移动等 键盘操作 键盘操作对应函数名 说明 ESC Ctrl \ indent-region 对光标和标记之间的每行文本进行缩进 ESC ; ...
- fastdfs-nginx-module安装和配置
fastdfs-nginx-module安装和配置 为什么要在fastdfs的storage端,安装fastdfs-nginx-module? 答案:https://www.cnblogs.com/l ...
- AtCoder - 2565(思维+暴力)
题意 https://vjudge.net/problem/AtCoder-2565 将一个H*W的矩形切成三份,每一次只能水平或者垂直切,问最大块的面积-最小快的面积 的最小值是多少. 思路 先枚举 ...
- 2. Vue - 初始
一.vue简单介绍 1. vue定义 vue是一套用于构建用户界面的渐进式框架.vue被设计为可自底向上逐层应用,vue的核心只关注视图层:vue的特点是数据驱动视图,可直接修改数据,不用再手动编 ...
- 鱼嘤嘤小分队 Alpha冲刺阶段博客目录
会议记录 周数 链接 主要工作 第六周 第六周链接 确定技术路线 第七周 第七周链接 讨论进展 最近的主要工作: 由于我们的代码能力以及pyhon的基础知识已经网络通信的知识储备是不够的,所以我们 ...
- 浅谈C++ STL deque 容器
浅谈C++ STL deque 容器 本篇随笔简单介绍一下\(C++STL\)中\(deque\)容器的使用方法及常见使用技巧. deque容器的概念 \(deque\)的意义是:双端队列.队列是我们 ...