asp.net core mvc在iis上部署

.net core mvc重新生成或发布,部署到iis,在浏览器浏览时提示

HTTP 错误 403.14 - Forbidden

Web 服务器被配置为不列出此目录的内容。

解决1:设置启用目录浏览(iis网站-功能视图-iis下的目录浏览-双击后设置启用),列出了目录,但不能通过点击对应页面进行跳转

解决2:设置起始页(将起始页放到wwwroot下,并在Startup.cs的Configure方法中添加如下代码:)

DefaultFilesOptions defaultFilesOptions = new DefaultFilesOptions();
defaultFilesOptions.DefaultFileNames.Clear();
defaultFilesOptions.DefaultFileNames.Add("静态页面路径,此处的路径是相对于wwwroot文件夹的相对路径");
app.UseDefaultFiles(defaultFilesOptions);
app.UseStaticFiles(); 

然后因为是mvc项目,不打算设置起始页了,直接通过/controller/method访问,但

HTTP 错误 404.0 - Not Found

您要找的资源已被删除、已更名或暂时不可用

于是查了.net core项目在iis中的部署,又安装了一个.net core模块,安装成功如下图(模块查看:iis左侧连接点击服务器名,在右侧的功能视图双击iis下的模块)

配置的网址路径为发布下的public目录,然后访问提示

HTTP Error 500.30 - ANCM In-Process Start Failure

查询错误码,根据文末链接文章中修改了vs发布时设置,将目标运行时由“可移植”调整为“win-x64”后,运行正常了直接在默认页,此时没有按前文设置起始页

 在云服务器上配置后,访问失败,提示:

HTTP Error 500.31 - Failed to load ASP.NET Core runtime

在服务器上安装了.net core运行环境后正常了。

然后服务器上可以访问,非服务器就不行了,然后查询了云服务器后台的安全组,设置没问题,还需要设置下防火墙(控制面板-Windows Defender 防火墙-高级设置-设置出入站规则)

参考:

设置默认起始页:https://www.cnblogs.com/braink-1400/p/11311753.html https://www.cnblogs.com/yuchenghao/p/11024164.html

.net core项目在iis中部署:https://www.cnblogs.com/wangjieguang/p/core-iis.html

.net core在iis中模块安装地址:https://docs.microsoft.com/zh-cn/aspnet/core/tutorials/publish-to-iis?view=aspnetcore-2.1&tabs=visual-studio

.net core部署目录结构:https://docs.microsoft.com/zh-cn/aspnet/core/host-and-deploy/directory-structure?view=aspnetcore-5.0&viewFallbackFrom=aspnetcore-2.1

安装.net core模块后报错500.30:https://blog.csdn.net/qq_25042791/article/details/103055914

服务器安装.net core运行环境:https://www.cnblogs.com/qtiger/p/13859801.html https://www.cnblogs.com/v587yy/p/12161684.html

.net core运行环境下载:https://dotnet.microsoft.com/download/dotnet-core

在iis部署后,本地可以访问,外部访问不了:https://blog.csdn.net/weixin_42059737/article/details/86477875

 本地可以访问,外部访问不了:https://blog.csdn.net/weixin_42059737/article/details/86477875

原文地址:https://www.cnblogs.com/fangxinliu/p/13957204.html