ASP.NET MVC4网站搭建与发布【最新】

ASP.NET MVC4网站搭建与发布

一些往事

2015年,仅仅大二的我怀着一颗创业之心,加入了常熟派英特,成为阳光职场平台的创始之一,并肩负了公司技术部的大梁,当时阳光职场正在从线下服务向互联网化升级过渡。php

距我离开本身公司已经快1.5年了,现在的我也面临着毕业,就业的难题,这期间我跑过大中小型各类公司,值得一提的是,其中包括一家全球知名的bios生产商,American Megatrends也给了我offer(此处小激动),而创业彷佛离我渐渐远去,看清现实的本身,不得不把本身身份放低,踏踏实实去作一名开发者,面试期间,为了得到更多公司对我项目经验的承认,我将把我经历过的各类平台的项目从新发布,其中包括了PHP项目,ASP.NET项目,J2EE项目,Node.js项目,Python项目,能够说我真是一个超全栈程序员,技术栈十分混乱,正如前面所说长期从事web开发的我因为对底层C也有必定基础,故得到了AMI BIOS的承认,个人每个新项目都尽可能采用本身不懂不会的平台去开发,以此来挑战本身的学习能力,提升本身对编程的认识和理解高度。html

本次要搭建的项目是本人当年在休学创业期间,为本身公司构建的全职兼职就业平台——“阳光职场”,该项目基架(包括CMS)起因外包公司代工,在2015年我加入常熟派英特公司后,将全网站先后端进行了重构,因为“外包遗留问题”,网站采用的是我当时不熟悉的ASP.NET平台,我不得不从PHP程序员临时转型为C#开发者,花了一个月自学C#与ASP.NET,最后成功的重构了整个网站。今天我让“阳光职场重获重生!”,遗憾的是这也将是我最后一次作ASP.NET的项目相关,说真的我一点也不喜欢“微软全家桶”以及各类图形界面的服务器配置(真的很蠢),作.NET是不可能的,这辈子都不会作.NET!mysql

MS ASP.NET全家桶

对于ASP.NET这种高度集成的环境,不论是开发仍是本次发布已有的源码项目,都须要用到微软全家桶,并且必须采用!ios

基本工具

  • visual studio 2017(勾选web与SQL的所有组件)
  • SQL Server 2017
  • SSMS(sqlserver管理工具)
  • IIS服务器

在这里必须抱怨一下,这一套加起来容量多大我已经数不清了,个人C盘至少少了20G,这仍是在我把vs安装在d盘的状况下,而要是我采用PHP或者Node进行web开发,顶多不过是500M的样子罢了,128G的surface伤不起呀,这里力劝创业者和企业在启动项目前若是想要加入ASP.NET必定要慎重思考。程序员

工具用途web

不像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。sql

数据库先行

(这一步保证你已经安装好SqlServer与SSMS)数据库

以上全部工具,我是先从SqlServer入手的,毕竟数据库是网站的核心嘛,打开SSMS管理工具,会自动弹出本地数据库服务器链接,点击windows身份链接便可。apache

SSMS管理器

导入数据

这里以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建站技术,源码不对外开放,请读者使用我的项目尝试,谢谢合做!

相关文章
相关标签/搜索