周沁
2019-09-02
1224浏览量
阿里云 NAS SMB 卷具有高可用高吞吐大容量等特点,可以很好地解决网站和数据库项目的存储问题。本文将介绍如何在 NAS SMB 卷上用 Visual Studio 调试 ASP.NET + SQLServer 项目并把项目部署到 IIS 服务作为正式服务开放出去。用户可以用该方案直接在 NAS SMB 卷上进行编程调试和网站部署,不用担心本地盘的容量和可用性限制。
安装 IIS 服务在文档 Windows IIS 服务挂载 NAS 共享文件存储 中有非常详细的叙述,用户可以参考该文档先安装好 IIS 服务。
可以在 Visual Studio 官网 下载 Visual Studio Community 2019。安装时记得选择 ASP.NET 工具。
我们的实验中使用的是 SQL Server Express 2014,下载地址:https://www.microsoft.com/en-in/download/details.aspx?id=42299
下载时请选择 ExpressAndTools 64BIT\SQLEXPRWT_x64_ENU.exe。
为了方便演示如何用 Visual Studio 调试 ASP.NET + SQLServer,我们使用 ASP.NET 的一个样例项目 EnumSample 作为示例。
可以在 ASP.NET 样例 Github 官网 上下载整个 ASP.NET 样例集 从而得到 EnumSample 代码。
下载完代码后解压并找到 EnumSample 项目并将其拷贝到本机挂载的 NAS SMB 卷上。
然后用 Visual Studio 打开。
会出现如下错误:
原因是在 NAS SMB 卷上的 EnumSample 的 Web.config 文件里的 connectionString 配置错误。
LocalDb 是 SQL Server 的一种轻量型引擎,可以用来调试程序和进行验证。
通过 Visual Studio 建立 LocalDb 的步骤如下:
注意:如果想要把数据库建立在 NAS SMB 卷上,可以参考 以 SYSTEM 身份挂载文件卷解决 SQLServer 使用 NAS SMB 文件卷等问题,让 SQLServer 可以看到 NAS SMB 文件卷,然后再在上面添加数据库的创建路径中选择 NAS SMB 盘作为存储位置。
LocalDb 只是用来进行调试的数据库。在生产环境中我们应该在 SQL Server 中创建针对生产的数据库。步骤如下:
在 Visual Studio 中选择 视图 -> SQL Server 对象管理器,在 SQL Server 上选择 添加 SQL Server,选择 浏览 -> 本地,然后选择 SQL Server 安装时创建的数据库仓库,比如 iZrj92ofs1q1ixZ\SQLEXPRESS。
直接将 DataSource= 改成 IP,1433 然后用 Visual Studio 启动是无法连接数据库的。需要参考 How do I configure SQL Server Express to allow remote tcp/ip connections on port 1433?,将数据库 TCP 1433 端口开放出来。
重启 SQL Server 服务之后再用 Visual Studio 运行 EnumSample 项目就可以了
记得将 DataSource= 改成 IP,1433
使用 IIS 配置 EnumSample 项目进行生产化部署也很简单。添加一个网站然后路径指向 EnumSample 的文件夹,然后配置好用户身份即可。
对于 IIS 服务,连接字符串(ConnectionString)可以用 IP,1433 的方式,也可以用机器名的方式,比如 iZrj92ofs1q1ixZ\SQLEXPRESS,作为数据库连接方式。
注意,可能会出现615错误,
或者Cannot Drop Database 错误。
这时候参考 SQL SERVER – FIX : Error : 3702 Cannot drop database because it is currently in use.,在 SQL Server 中运行
USE Master;
GO
DROP DATABASE EnumSampleDb;
GO
即可解决。
本篇文章详细介绍了如何利用 NAS SMB 卷搭建好 ASP.NET + SQLServer 服务,叙述了如何使用 Visual Studio 调试以及如何使用 IIS 做生产部署。使用 NAS SMB 卷之后用户再也不用担心云盘的存储空间限制,服务的吞吐能力、可用性和稳定性也都会得到提高。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。