ASP.NET MVC - 发布web应用程序、部署到IIS
发布项目
右击项目 - 发布
选择IIS - 点击发布
发布方法 - 文件系统,目标位置 - 选择与项目所在目录不同的目录(也即,指定一个发布生成文件的目录),文件发布选项 - 不选 - 点击发布
安装IIS
点击windows徽标 - 设置 - 应用和功能 - 右侧程序和功能
左侧 - 启用或关闭windows功能
勾选Internet Information Services后会自动安装IIS,一定要把万维网服务选项下面的ISAPI选中,最好全选,以绝后患。
在程序列表中找到IIS管理器图标并打开它。
部署web项目到IIS
右击网站 - 添加网站
只需要指定:网站名、刚才发布的项目所在根目录、端口即可
双击应用程序池,在中间面板中的列表如果不像下面的图那样,则说明IIS没安装完全。
至此网站已经部署到了IIS,可以单击IIS管理器左侧的网站图标,再单击右侧的浏览网站即可测试
附加正在开发的项目到IIS
不需要发布项目,直接在IIS中添加网站,路径选择项目所在目录即可。如果在vs中修改了源代码,通过浏览器访问网站前一定要先编译项目,否则网站不会执行已经修改过的程序。当需要调试项目时,可以使用附加到进程,前提是IIS中的web程序已经在运行在w3wp.exe中。在以管理员身份登录的vs中创建断点 - 编译项目 - 点击菜单栏的调试菜单 - 附加到进程 - 勾选显示所有进程 - 双击w3wp.exe。如果w3wp.exe不在进程列表,可以先向IIS发起一个请求,打开网页,此时w3wp.exe会出现在vs附加到进程的进程列表中。
常见错误:
用户 'IIS APPPOOL\XXX' 登录失败。
解决方法:双击应用程序池 - 在面板中间右键选择你的web程序所在应用程序池 - 高级设置 - 进程模型 - 选择合适的登录数据库的模式
如果列表中的选项都无效,则选择ApplicationPoolIdentity,然后在web.config中将数据库连接字符串改为用户密码登录,比如sa
如果双击"处理程序映射"时报下面的错误:是因为IIS7采用了集成管道模式,锁定了module和handler
处理程序映射
---------------------------
执行此操作时出错。
---------------------------
执行此操作时出错。
解决方法:
管理员身份运行命令行解锁:
C:\windows\system32\inetsrv\appcmd unlock config -section:system.webServer/handlers
C:\windows\system32\inetsrv\appcmd unlock config -section:system.webServer/modules
C:\windows\system32\inetsrv\appcmd unlock config -section:system.webServer/handlers
C:\windows\system32\inetsrv\appcmd unlock config -section:system.webServer/modules
无法识别的属性“targetFramework”。请注意属性名称区分大小写。
参考:https://www.cnblogs.com/dongchi/p/4940053.html