ASP.NET MVC4网站搭建与发布【最新】
ASP.NET MVC4网站搭建与发布
一些往事
2015年,仅仅大二的我怀着一颗创业之心,加入了常熟派英特,成为阳光职场平台的创始之一,并肩负了公司技术部的大梁,当时阳光职场正在从线下服务向互联网化升级过渡。
距我离开自己公司已经快1.5年了,如今的我也面临着毕业,就业的难题,这期间我跑过大中小型各种公司,值得一提的是,其中包括一家全球知名的bios生产商,American Megatrends也给了我offer(此处小激动),而创业似乎离我渐渐远去,看清现实的自己,不得不把自己身份放低,踏踏实实去做一名开发者,面试期间,为了获得更多公司对我项目经验的认可,我将把我经历过的各种平台的项目重新发布,其中包括了PHP项目,ASP.NET项目,J2EE项目,Node.js项目,Python项目,可以说我真是一个超全栈程序员,技术栈十分混乱,正如前面所说长期从事web开发的我由于对底层C也有一定基础,故获得了AMI BIOS的认可,我的每一个新项目都尽量采用自己不懂不会的平台去开发,以此来挑战自己的学习能力,提高自己对编程的认识和理解高度。
本次要搭建的项目是本人当年在休学创业期间,为自己公司构建的全职兼职就业平台——“阳光职场”,该项目基架(包括CMS)原由外包公司代工,在2015年我加入常熟派英特公司后,将全网站前后端进行了重构,由于“外包遗留问题”,网站采用的是我当时不熟悉的ASP.NET平台,我不得不从PHP程序员临时转型为C#开发者,花了一个月自学C#与ASP.NET,最后成功的重构了整个网站。今天我让“阳光职场重获重生!”,遗憾的是这也将是我最后一次做ASP.NET的项目相关,说真的我一点也不喜欢“微软全家桶”以及各种图形界面的服务器配置(真的很蠢),做.NET是不可能的,这辈子都不会做.NET!
MS ASP.NET全家桶
对于ASP.NET这种高度集成的环境,不管是开发还是本次发布已有的源码项目,都需要用到微软全家桶,而且必须采用!
基本工具
- visual studio 2017(勾选web与SQL的全部组件)
- SQL Server 2017
- SSMS(sqlserver管理工具)
- IIS服务器
在这里必须抱怨一下,这一套加起来容量多大我已经数不清了,我的C盘至少少了20G,这还是在我把vs安装在d盘的情况下,而要是我采用PHP或者Node进行web开发,顶多不过是500M的样子罢了,128G的surface伤不起呀,这里力劝创业者和企业在启动项目前如果想要加入ASP.NET一定要慎重思考。
工具用途
不像php开发网站,发布归发布,开发归开发,可以使两套工具。ASP.NET任何情况都是全套,因为C#需要经过vs的编译,除此以外光SQL Server数据库也是不够的,管理工具sql server manage studio也是必须的,导入数据用,这两个可以捆绑安装。别问为什么,SQLserver即是要配置局域网访问(非本地访问)也需要SSMS来操作,你想要远程导入也是不可能的的,笔者在配置时使用了虚拟机,将网站发布在虚拟机中,结果发现虚拟机内不安装SSMS,连访问虚拟机中SQLserver的可能都没有。
至于IIS就更加糟糕,它不像Linux下配置Nginx或是apache,找到etc目录下的配置文件,按照每一行的注释修改即可,微软靠的是图形界面,连server端都逃不过,这就让我这个Linux控十分难受了,因为图形界面反而让我不知道去哪修改我想要的配置,总之,后面会一一解释最终我是如何在IIS上跑asp.net mvc4。
数据库先行
(这一步保证你已经安装好SqlServer与SSMS)
以上所有工具,我是先从SqlServer入手的,毕竟数据库是网站的核心嘛,打开SSMS管理工具,会自动弹出本地数据库服务器连接,点击windows身份连接即可。
导入数据
这里以sql文件为例(在微软的数据库世界里,一般他们都喜欢mdf文件)
第一步,创建数据库
这里我新建一个叫SunJob的数据库。
第二步,新建查询
由于我们导入的是sql文件,sql文件其实就是批处理(脚本)语言罢了,在这里选择菜单栏“新建查询”,或者直接将sql文件拖拽至SSMS当中即可,注意是否需要修改sql文件部分内容,比如我这里删除了“create database”等语句,最后点击“执行”,去数据库刷新一下看看表和视图是不是都在里面了。
添加用户
左边树状栏,找到安全性(最外层,这是数据服务器级别的)->登录名,新建一个登录名,也就是新用户,配置如下,主要工作是将刚刚新建的数据库授权给他作为默认数据库,在SqlServer中最好每个数据都有角色管理(好吧,mysql我都是root直辖的)。
刚刚只是为SqlServer添加了用户,还要,找到新建好的数据库(SunJob)->安全性(这是单个数据库级别的)->用户->右击新建用户
点击浏览,在对话框中找到刚刚新建的用户,打上勾,确定即可
关于用户对数据库增删改查的权限
运行项目可能会遇到没有select权限的问题,需要在安全对象中为新建的用户授权,如下:
关于sqlserver用户登录时:18456错误
为整个数据库服务器开通“windows用户登录以及sqlserver用户双重登录功能”,右击左侧树状栏的最顶层(DESKTOP-XXXX),也就是本机数据库服务器(sqlserver)-》属性-》双击“安全性”。
编译和发布
打开visual studio 2017,菜单栏选择打开项目,找到sln文件。
修改web.config
修改connectionStrings
神奇的是,在asp.net的世界里,数据连接不是一个json或者类似json对象的配置,而是一行字符串,笔者习惯了php,遇到这种一行字符串配置连接真的是懵逼啊,不过好在我们可以通过vs找这行连接字符串。
点击vs菜单栏工具找到:“连接到数据库”,弹出对话框,选择想要的那种。
下拉服务器名,vs会自动搜索本机上安装的sql server,这里会卡挺久的,如果vs找不到,可以回SSMS中找到目标数据库,右击属性,然后点击“查看连接属性”,里面可以找到服务器名称。
回到vs2017中,填写完整连接信息,点击测试连接,成功后点击高级(这里可以看到连接字符串了,也可以不用点,后面有完整的,直接复制到web.config中即可):
vs右侧的“服务器资源管理器”,右击查看刚刚添加的数据库连接的属性,可以看到关于他的连接字符串。
最后,将查到的data source修改到web.config文件里的connectionStrings中!项目可以连接到数据库了。
<connectionStrings>
<add name="SunJob" connectionString="Data Source=DESKTOP-4V7JQD8\SQLEXPRESS;Initial Catalog=SunJob;User ID=sunjob;Password=25" providerName="System.Data.SqlClient" />
</connectionStrings>
运行一下项目试试!不禁热泪盈眶,那一年我们的公司,我们的网站!(如今只能在自己电脑上运行了)
其实到这里已经基本大功告成了,但是只能本地访问(这其实是vs自带的iis模拟器),需要局域网或者广域网访问,需要将项目部署到IIS,这样看上去也更像是一个完整的网站,不过域名我就不给他了_(:з」∠)_
发布网站
visual studio中右击左侧树状栏中的项目,点击发布:
等等需要将这个vs发布的目标位置作为iis网站目录。注意发布方法为“文件系统”!
开启windows iis功能
这一步比较基础,不做详述,自己看图
更多详细步骤参阅:https://jingyan.baidu.com/article/eb9f7b6d9e73d1869364e8d8.html
注意把“.net4+”相关的都打钩。
配置IIS
打开IIS管理器,右击添加网站
图中圈出来的都是配置重点,如果是asp.net mvc4网站,需要一模一样!
关于:此操作要求使用 IIS 集成管线模式错误
进入应用程序池中修改托管管道模式
关于:局域网访问IIS
请在防火墙高级设置中添加入站规则,将相应端口号开放
好了,网站已经可以正常访问了。
注:由于该项目为商业项目,源码最终归属权属于常熟派英特信息技术有限公司所有,本博客只涉及asp.net mvc建站技术,源码不对外开放,请读者使用个人项目尝试,谢谢合作!
ASP.NET MVC4网站搭建与发布【最新】的更多相关文章
- Asp.net MVC4 网站发布
1.打开你的VS2012网站项目,右键点击项目-->发布: 2.弹出网站发布设置面板,点击<新建..>创建新的发布配置文件: 3.输入配置文件名称:(名称随便) 3.在发布方法中选“ ...
- ASP.NET MVC4网站部署在阿里ECS云服务器(WIndows Server 2012+IIS8环境)
首先交代一下服务器的环境配置 系统是WIndows Server2012(配置的时候选的是全能环境),服务器是IIS8 由于装了VS2012,所以系统也自动装上了.Net Framework4.5,M ...
- angluarjs2项目生成内容合并到asp.net mvc4项目中一起发布
应用场景 angular2(下文中标注位NG2)项目和.net mvc项目分别开发,前期采用跨域访问进行并行开发,后期只需要将NG2项目的生产版本合并到.net项目. NG2项目概述 ng2项目采用的 ...
- 微信开发订阅号(ASP.NET MVC4+jquery mobile+AppHarbor发布)
首先应该去微信公众平台注册一个账号,因为我是用的个人,所以只能注册订阅号,然后需要提供身份证照片,这些大家慢慢折腾.然后在微信管理面板中选择高级功能,进入开发者模式. 在服务器配置中需要提供最重要的u ...
- 构建ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的后台管理系统(34)-文章发布系统①-简要分析
原文:构建ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的后台管理系统(34)-文章发布系统①-简要分析 系列目录 最新比较闲,为了学习下Android的开发构建ASP.NET ...
- MVC4网站发布到windows server 2003服务器
在windows server 2003上部署MVC4的网站,需要进行以下工作 用VS2013新建项目 在创建项目的时候选择的矿建为.NET Framework4,然后选择[ASP.NET MVC4 ...
- 构建ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的后台管理系统(36)-文章发布系统③-kindeditor使用
原文:构建ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的后台管理系统(36)-文章发布系统③-kindeditor使用 我相信目前国内富文本编辑器中KindEditor 属于前 ...
- ASP.NET Core 网站发布到Linux服务器
长期以来,使用.NET开发的应用只能运行在Windows平台上面,而目前国内蓬勃发展的互联网公司由于成本的考虑,大量使用免费的Linux平台,这就使得.NET空有一身绝技但无法得到广大的施展空间,.N ...
- ASP.NET Core 网站发布到Linux服务器(转)
出处;ASP.NET Core 网站发布到Linux服务器 长期以来,使用.NET开发的应用只能运行在Windows平台上面,而目前国内蓬勃发展的互联网公司由于成本的考虑,大量使用免费的Linux平台 ...
随机推荐
- ZJNU 2135 - 小智的宝可梦
因为成环 所以可以枚举第1只与第n只喂的次数 然后第1只和第2只的次数就固定了,以此类推,则所有宝可梦喂的次数都固定了 最后处理完检查是否全为0,不是则进行下一次枚举,是则直接输出Yes 如果所有枚举 ...
- HttpClient apache上篇
1.什么是HttpClient Http 是Hyper-Text Transfer Protocol简写,迄今为止互联网应用最广泛的协议.网络服务.互联网应用.网络计算需求的增长,持续推动http协议 ...
- Python笔记_第二篇_面向过程_第二部分_1.函数
函数:这个词属于一个数学概念,在编程语言借鉴了这个概念,表现形式是一段程序代码的组合,也叫“程序集”.有过编程基础的人很容易理解这个概念,当我们编写程序越来越多的时候,程序设计大师们会把散乱的程序进行 ...
- 2019ICPC 上海网络赛 L. Digit sum(二维树状数组+区间求和)
https://nanti.jisuanke.com/t/41422 题目大意: 给出n和b,求1到n,各数在b进制下各位数之和的总和. 直接暴力模拟,TLE.. 没想到是要打表...还是太菜了. # ...
- 01 语言基础+高级:1-7 异常与多线程_day06 【线程、同步】
day06 [线程.同步] 主要内容 线程 同步 线程状态 一.学习目标 1. 能够描述Java中多线程运行原理 2. 能够使用继承类的方式创建多线程 3. 能够使用实现接口的方式创建多线程 4. 能 ...
- Java任务调度框架之分布式调度框架XXL-Job介绍
Java任务调度框架之分布式调度框架XXL-Job介绍及快速入门 调度器使用场景: Java开发中经常会使用到定时任务:比如每月1号凌晨生成上个月的账单.比如每天凌晨1点对上一天的数据进行对账操作 ...
- k8s miniKube 入门
k8s miniKube 入门 miniKube 是单机版kubernetes, 可以配置运行在同一台主机上的服务和pod,并使用docker作为虚拟化工具 下载:直接下载可执行文件,复制到path ...
- 【ccf-csp201512-5】矩阵
click 试题编号: 201512-5 试题名称: 矩阵 时间限制: 1.0s 内存限制: 256.0MB 问题描述: 问题描述 创造一个世界只需要定义一个初状态和状态转移规则. 宏观世界的物体运动 ...
- 爬虫笔记(一)——快速使用urllib库
本人以前用的都是python2.7,但看网上很多教程都是以python3为例的,所以便切换版本,导入urllib.lxml.beautifulsoup4等库. 下面介绍下两个版本对urllib库的区别 ...
- Hibernate工程的手动创建
1.打开MyEclipse软件,新建Java项目,如HibernateReview: 2.导入Hibernate所需的jar包: 右键build path选择configurate build pat ...