在 NAS SMB 卷上用 Visual Studio 调试 ASP.NET + SQLServer 项目并部署到 IIS 服务

本文涉及的产品
对象存储 OSS,20GB 3个月
阿里云盘企业版 CDE,企业版用户数5人 500GB空间
云备份 Cloud Backup,100GB 3个月
简介: 阿里云 NAS SMB 卷具有高可用高吞吐大容量等特点,可以很好地解决网站和数据库项目的存储问题。本文将介绍如何在 NAS SMB 卷上用 Visual Studio 调试 ASP.NET + SQLServer 项目并把项目部署到 IIS 服务作为正式服务开放出去。

阿里云 NAS SMB 卷具有高可用高吞吐大容量等特点,可以很好地解决网站和数据库项目的存储问题。本文将介绍如何在 NAS SMB 卷上用 Visual Studio 调试 ASP.NET + SQLServer 项目并把项目部署到 IIS 服务作为正式服务开放出去。用户可以用该方案直接在 NAS SMB 卷上进行编程调试和网站部署,不用担心本地盘的容量和可用性限制。

1. 安装 IIS 服务

安装 IIS 服务在文档 Windows IIS 服务挂载 NAS 共享文件存储 中有非常详细的叙述,用户可以参考该文档先安装好 IIS 服务。

2. 安装 Visual Studio Community 2019

可以在 Visual Studio 官网 下载 Visual Studio Community 2019。安装时记得选择 ASP.NET 工具。

安装时记得选择 ASP.NET 工具

3. 安装 SQL Server Express 2014

我们的实验中使用的是 SQL Server Express 2014,下载地址:https://www.microsoft.com/en-in/download/details.aspx?id=42299

下载时请选择 ExpressAndTools 64BIT\SQLEXPRWT_x64_ENU.exe。
下载时请选择 ExpressAndTools 64BIT\SQLEXPRWT_x64_ENU.exe

4. 编译调试 EnumSample 样例项目

为了方便演示如何用 Visual Studio 调试 ASP.NET + SQLServer,我们使用 ASP.NET 的一个样例项目 EnumSample 作为示例。

4.1. 下载 EnumSample 代码

可以在 ASP.NET 样例 Github 官网 上下载整个 ASP.NET 样例集 从而得到 EnumSample 代码。

ASP.NET 样例 Github 官网

4.2. 将 EnumSample 文件夹拷贝到 NAS SMB 卷上并用 Visual Studio 打开

下载完代码后解压并找到 EnumSample 项目并将其拷贝到本机挂载的 NAS SMB 卷上。
然后用 Visual Studio 打开。
会出现如下错误:
SQL Server Exception!

原因是在 NAS SMB 卷上的 EnumSample 的 Web.config 文件里的 connectionString 配置错误。
connectionString 配置错误

4.3. 通过 Visual Studio 建立 SQL Server 的 LocalDb

LocalDb 是 SQL Server 的一种轻量型引擎,可以用来调试程序和进行验证。

通过 Visual Studio 建立 LocalDb 的步骤如下:

4.3.1. Visual Studio 下选择 视图 -> SQLServer 对象管理器

Visual Studio 下选择 视图 -> SQLServer 对象管理器

4.3.2. 选择一个 LocalDb ,比如 (localdb)ProjectsV13 ,右键点击数据库,选择 添加数据库

选择 添加数据库

4.3.3. 填写数据库名称,比如 EnumSampleLocalDb

填写数据库名称,比如 EnumSampleLocalDb

注意:如果想要把数据库建立在 NAS SMB 卷上,可以参考 以 SYSTEM 身份挂载文件卷解决 SQLServer 使用 NAS SMB 文件卷等问题,让 SQLServer 可以看到 NAS SMB 文件卷,然后再在上面添加数据库的创建路径中选择 NAS SMB 盘作为存储位置。

4.3.4. 鼠标左键选择该数据库,然后找到右下角属性中的 连接字符串(ConnectionString),替换 Web.config 中的 connectionString 整个字段即可解决之前的 SQLServer Exception

找到并替换 连接字符串(ConnectionString)

4.3.5. 再次运行 EnumSample 网站,这次就可以正常显示网站了:

EnumSample 的正常网站

4.4. 通过 Visual Studio 建立 SQL Server 生产型数据库并连接到 EnumSample 项目

LocalDb 只是用来进行调试的数据库。在生产环境中我们应该在 SQL Server 中创建针对生产的数据库。步骤如下:

4.4.1. 连接上 SQL Server 的生产型数据库仓库

在 Visual Studio 中选择 视图 -> SQL Server 对象管理器,在 SQL Server 上选择 添加 SQL Server,选择 浏览 -> 本地,然后选择 SQL Server 安装时创建的数据库仓库,比如 iZrj92ofs1q1ixZ\SQLEXPRESS。

选择 SQL Server 安装时创建的数据库仓库

4.4.2. 在生产型数据库仓库下创建数据库,参考 4.3.2 到 4.3.5。可以看到正常显示的网站。

4.5. 打开 SQL Server 的 IP 访问功能

直接将 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 项目就可以了
重启 SQL Server 服务

记得将 DataSource= 改成 IP,1433
将 DataSource= 改成 IP,1433

5. 使用 IIS 来生产化部署该项目

使用 IIS 配置 EnumSample 项目进行生产化部署也很简单。添加一个网站然后路径指向 EnumSample 的文件夹,然后配置好用户身份即可。
添加一个网站然后路径指向 EnumSample 的文件夹,然后配置好用户身份即可

对于 IIS 服务,连接字符串(ConnectionString)可以用 IP,1433 的方式,也可以用机器名的方式,比如 iZrj92ofs1q1ixZ\SQLEXPRESS,作为数据库连接方式。

注意,可能会出现615错误,
615错误

或者Cannot Drop Database 错误。
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

即可解决。

6. 总结

本篇文章详细介绍了如何利用 NAS SMB 卷搭建好 ASP.NET + SQLServer 服务,叙述了如何使用 Visual Studio 调试以及如何使用 IIS 做生产部署。使用 NAS SMB 卷之后用户再也不用担心云盘的存储空间限制,服务的吞吐能力、可用性和稳定性也都会得到提高。

7. 参考文档

7.1. Windows IIS 服务挂载 NAS 共享文件存储:https://help.aliyun.com/document_detail/54986.html

7.2. Visual Studio 官网:https://visualstudio.microsoft.com/vs/community/

7.3. SQL Server Express 2014 下载地址:https://www.microsoft.com/en-in/download/details.aspx?id=42299

7.4. ASP.NET EnumSample 样例:https://github.com/aspnet/samples/tree/master/samples/aspnet/MVC/EnumSample

7.5. ASP.NET 样例 Github 官网:https://github.com/aspnet/samples

7.6. ASP.NET 样例集:https://github.com/aspnet/samples/archive/master.zip

7.7. 以 SYSTEM 身份挂载文件卷解决 SQLServer 使用 NAS SMB 文件卷等问题:https://yq.aliyun.com/articles/715687

7.8. SQL SERVER – FIX : Error : 3702 Cannot drop database because it is currently in use:https://blog.sqlauthority.com/2007/12/07/sql-server-fix-error-3702-cannot-drop-database-because-it-is-currently-in-use/

相关实践学习
SQL Server on Linux入门教程
SQL Server数据库一直只提供Windows下的版本。2016年微软宣布推出可运行在Linux系统下的SQL Server数据库,该版本目前还是早期预览版本。本课程主要介绍SQLServer On Linux的基本知识。 相关的阿里云产品:云数据库RDS SQL Server版 RDS SQL Server不仅拥有高可用架构和任意时间点的数据恢复功能,强力支撑各种企业应用,同时也包含了微软的License费用,减少额外支出。 了解产品详情: https://www.aliyun.com/product/rds/sqlserver
目录
相关文章
|
10天前
|
存储 JSON 开发工具
Visual Studio编程效率提升技巧集(提高.NET编程效率)
Visual Studio编程效率提升技巧集(提高.NET编程效率)
Visual Studio编程效率提升技巧集(提高.NET编程效率)
|
2月前
|
Web App开发
Visual Studio Code 直接启动项目
Visual Studio Code 直接启动项目
58 0
|
2月前
|
开发框架 安全 .NET
IIS服务器发布ASP.NET项目
对于云服务器,程序员一般不会陌生,如果项目需要发布到现网,那么服务器是必不可缺的一项硬性条件,那么如何在云服务器上部署一个项目,需要做哪些配置准备,下面就由本文档为大家讲解,本篇以IIS服务器发布ASP.NET项目为例。
64 1
|
10天前
|
存储 运维
使用Visual Studio分析.NET Dump
使用Visual Studio分析.NET Dump
|
2月前
|
存储 安全 测试技术
使用 Visual Studio Code 创建 SAP UI5 项目遇到 self-signed security certificate 相关问题
使用 Visual Studio Code 创建 SAP UI5 项目遇到 self-signed security certificate 相关问题
|
10天前
|
前端开发 JavaScript 应用服务中间件
windows server + iis 部署若伊前端vue项目
5,配置url重写规则(重写后端请求) 注:如果没有Application Request Routing Cachefourcloudbdueclaim和URL重写,则是第二部的那两个插件没装上 打开iis,点击计算机->点击Application Request Routing Cache -> 打开功能
37 0
|
1月前
|
微服务
微服务实践之使用 Visual Studio 2022 调试Dapr 应用程序
微服务实践之使用 Visual Studio 2022 调试Dapr 应用程序
50 3
|
2月前
|
开发框架 前端开发 JavaScript
JavaScript云LIS系统源码ASP.NET CORE 3.1 MVC + SQLserver + Redis医院实验室信息系统源码 医院云LIS系统源码
实验室信息系统(Laboratory Information System,缩写LIS)是一类用来处理实验室过程信息的软件,云LIS系统围绕临床,云LIS系统将与云HIS系统建立起高度的业务整合,以体现“以病人为中心”的设计理念,优化就诊流程,方便患者就医。
44 0
|
2月前
|
编译器 C++
Visual Studio 2022中创建的C++项目无法使用万能头<bits/stdc++.h>解决方案
Visual Studio 2022中创建的C++项目无法使用万能头<bits/stdc++.h>解决方案
92 0
Visual Studio 2022中创建的C++项目无法使用万能头<bits/stdc++.h>解决方案
|
2月前
|
Windows
Qt 5.14.2 打造跨平台应用的秘诀:用Visual Studio 2022和Qt 5.14.2轻松创建你的首个QT项目
Qt 5.14.2 打造跨平台应用的秘诀:用Visual Studio 2022和Qt 5.14.2轻松创建你的首个QT项目
196 0

相关产品

  • 文件存储NAS