本地MVC项目发布到IIS服务器

0瞎扯

朋友们有时候我们写个一个web程序只能使用卡西尼服务器调试,下面我教大家发布到IIS服务器上(包括本地ISS7.5和远程服务器

IIS)

1.VS发布

a.点击web项目->发布

本地MVC项目发布到IIS服务器

b.在发布->配置文件->新建

本地MVC项目发布到IIS服务器

连接中选择文件系统,并选择发布文件要存放的地址

本地MVC项目发布到IIS服务器

设置->配置:如下

本地MVC项目发布到IIS服务器

设置完成后点击发布

本地MVC项目发布到IIS服务器

发布好的目录

本地MVC项目发布到IIS服务器

b.配置IIS

0.创建网站之前必须启动:W3SVC(World Wide Web Publishing Service)服务,作用:通过 Internet 信息服务管理器提供 Web 连接和管理。对应的进程:C:\Windows\system32\svchost.exe

1.打开IIS(打开方式),网站添加一个新网站,

本地MVC项目发布到IIS服务器

2.在右侧先启动后浏览

本地MVC项目发布到IIS服务器

这时如果出现下图HTTP错误500-19-Internal Server Error

本地MVC项目发布到IIS服务器

我们查看原因 :配置错误 由于权限不足而无法读取配置文件(权限不足,我们给他加权限)

解决:编辑文件权限,选中“Xxx网站”节点→右键→编辑权限→加入everyone账户。

本地MVC项目发布到IIS服务器

本地MVC项目发布到IIS服务器

3,再继续浏览 出现错误HTTP 错误403.14-Forbidden

本地MVC项目发布到IIS服务器

原因:没有为请求的 URL 配置默认文档,并且没有在服务器上启用目录浏览。本地MVC项目发布到IIS服务器

解决方案:选中"Xxx网站"节点→看右边的“功能视图”→目录浏览→在右边的窗口中点击“启用”、“禁用”。不建议启用目录浏览

当不启用目录浏览,是在Asp.net中要设置配置一个默认显示的页面:选中“网站”节点→“功能视图”→“默认文档”→双击→在右边的对话框中“添加”一个默认要显示的文档的名称,并移动(上移、下移),在MVC中配置路由即可,不必设置默认页。本地MVC项目发布到IIS服务器

更改应用程序池->双击自己的网站项目
本地MVC项目发布到IIS服务器

更改.net Framework
本地MVC项目发布到IIS服务器

4,正常情况下就可以访问自己的网站啦,

5,其他IIS错误总结

(1)HTTP错误500.21-Internal Server Error

本地MVC项目发布到IIS服务器

上图的错误,可能的原因:1>IIS安装不完整。2>没有在IIS上注册.net framework。

找到对应的.net framework目录下,执行aspnet_regiis.exe命令,重新注册一次.net framwork到IIS。注册目录如下:C:\Windows\Microsoft.NET\Framework\v4.0.30319\aspnet_regiis.exe -i   (安装)
本地MVC项目发布到IIS服务器

打开控制台(空白处+shift)弹出命令窗口注册.net framwork到IIS

本地MVC项目发布到IIS服务器

(2)数据库验证错误

本地MVC项目发布到IIS服务器

原因:当前网站连接数据库的时候采用的是windows身份验证方式,而当前网站对应的应用程序池中的账户没有访问sql server的权限。解决:把网站连接数据库的身份验证方式改成sql server身份验证方式,使用Sql server账号登录。
(3)HTTP错误500.24-Internal Server Error

本地MVC项目发布到IIS服务器

程序使用的是经典模式,服务器使用的是集成模式,选中对应网站的应用程序池,修改为经典模式。

本地MVC项目发布到IIS服务器

(4)HTTP错误404.17-Not Found

本地MVC项目发布到IIS服务器

服务器与网站程序.net版本不一致。或者是IIS安装不完整,或者是没有正确注册.net framework(错误二)。

3发布到服务器

连接服务器win+R

本地MVC项目发布到IIS服务器

同上方法配置:

注意IIS7发布时MVC项目是会出现:HTTP错误 403.14-Forbidden Web 服务器被配置为不列出此目录的内容

本地MVC项目发布到IIS服务器

解决方法:更改网站根目录web.config文件

添加

<system.webServer>
<modules runAllManagedModulesForAllRequests="true" />
</system.webServer>

要设置<modules>节的值为true;

4.结束语

这就是我在IIS发布时的总结,如果有没解决的问题可以给我留言,我会尽可能的帮助大家的!!!

上一篇:010 使用netmap API接管网卡,接收数据包,回应ARP请求


下一篇:微服务开发有道之把项目迁移到Kubernetes上的5个小技巧