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网站搭建与发布【最新】的更多相关文章

  1. Asp.net MVC4 网站发布

    1.打开你的VS2012网站项目,右键点击项目-->发布: 2.弹出网站发布设置面板,点击<新建..>创建新的发布配置文件: 3.输入配置文件名称:(名称随便) 3.在发布方法中选“ ...

  2. ASP.NET MVC4网站部署在阿里ECS云服务器(WIndows Server 2012+IIS8环境)

    首先交代一下服务器的环境配置 系统是WIndows Server2012(配置的时候选的是全能环境),服务器是IIS8 由于装了VS2012,所以系统也自动装上了.Net Framework4.5,M ...

  3. angluarjs2项目生成内容合并到asp.net mvc4项目中一起发布

    应用场景 angular2(下文中标注位NG2)项目和.net mvc项目分别开发,前期采用跨域访问进行并行开发,后期只需要将NG2项目的生产版本合并到.net项目. NG2项目概述 ng2项目采用的 ...

  4. 微信开发订阅号(ASP.NET MVC4+jquery mobile+AppHarbor发布)

    首先应该去微信公众平台注册一个账号,因为我是用的个人,所以只能注册订阅号,然后需要提供身份证照片,这些大家慢慢折腾.然后在微信管理面板中选择高级功能,进入开发者模式. 在服务器配置中需要提供最重要的u ...

  5. 构建ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的后台管理系统(34)-文章发布系统①-简要分析

    原文:构建ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的后台管理系统(34)-文章发布系统①-简要分析 系列目录 最新比较闲,为了学习下Android的开发构建ASP.NET ...

  6. MVC4网站发布到windows server 2003服务器

    在windows server 2003上部署MVC4的网站,需要进行以下工作 用VS2013新建项目 在创建项目的时候选择的矿建为.NET Framework4,然后选择[ASP.NET MVC4 ...

  7. 构建ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的后台管理系统(36)-文章发布系统③-kindeditor使用

    原文:构建ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的后台管理系统(36)-文章发布系统③-kindeditor使用 我相信目前国内富文本编辑器中KindEditor 属于前 ...

  8. ASP.NET Core 网站发布到Linux服务器

    长期以来,使用.NET开发的应用只能运行在Windows平台上面,而目前国内蓬勃发展的互联网公司由于成本的考虑,大量使用免费的Linux平台,这就使得.NET空有一身绝技但无法得到广大的施展空间,.N ...

  9. ASP.NET Core 网站发布到Linux服务器(转)

    出处;ASP.NET Core 网站发布到Linux服务器 长期以来,使用.NET开发的应用只能运行在Windows平台上面,而目前国内蓬勃发展的互联网公司由于成本的考虑,大量使用免费的Linux平台 ...

随机推荐

  1. Tkinter控件Canvas

    网上关于tkinter的canvas组件系统的中文教程很少,英文教程未知.要么是专业的参考文档,没有丰富的实例,要么在不同的论坛,博客平台零零散散存在一些canvas的例子,这给学习canvas带来了 ...

  2. Java web之jsp,xml(2020.1.7)

    1.xml文档规则 xml声明 字符集 xml元素的基本规则: 合法标签名 嵌套子元素 空元素

  3. upstream实现内网网站在公网访问

    背景描述:公司内网有个网站aa.com,B部门需要访问这个aa.com,但是网站部署在内网服务器(服务器是192.168.1网段),B部门网段是192.168.100 需求描述:B部门需要访问aa.c ...

  4. Java中:>>>和>>区别

    >>>表示不带符号向右移动二进制数,移动后前面统统补0:两个箭头表示带符号移动, 没有<<<这种运算符,因为左移都是补零,没有正负数的区别. 如 -12 的二进制为 ...

  5. Gson使用指南(一)

    注:此系列基于Gson 2.4. 一.Gson的基本用法 Gson提供了fromJson() 和toJson() 两个直接用于解析和生成的方法,前者实现反序列化,后者实现了序列化.同时每个方法都提供了 ...

  6. 你知道你对 JSON Web Token 的认识存在误解吗

    1.前言 JSON Web Token (JWT) 其实目前已经广为软件开发者所熟知了,但是 JOSE (Javascript Object Signing and Encryption) 却鲜有人知 ...

  7. mysql数据库5.6.45安装后的配置(离线安装包版)

    二.windows10下的配置 (1) 环境变量配置 打开控制面板=>系统和安全=>系统=>高级系统设置,选择环境变量,在系统变量中找到path,编辑该选项. 第一行是oracle数 ...

  8. oracle 查询表空间

    测试用户连接C:\Users\ZP>sqlplus /nologconn hbcxuser/hbcxpass --查看所有表空间 select * from user_tablespaces-- ...

  9. linux epoll ET边沿触发

    /***EPOLL ET 触发必须使用非阻塞,LT触发可以阻塞/非阻塞.*read 函数 非阻塞读需 忙轮寻 soket关闭返回0,循环读完数据*如果已经读完再读read返回 -1,errno=11( ...

  10. Office、VBA开发方案选择指南

    最近很多朋友向我提出Office的开发方式方面的疑惑,主要是针对特定的系统和Office版本不知道选择哪一种编程语言.创建哪一种类型的项目. 事实确实如此,如果搞不清楚语言的特性和项目类型的特点,很可 ...