在IIS上部署项目总结

发布前的准备

  • 一般情况下先需要安装这三个


    image.png
  • 保证项目模块里面有这两个


    image.png
  • 查看配置环境
    在cmd执行

dotnen --info
image.png

打包项目

  • 鼠标右击你要发布的项目选择发布


    20190430094158117.png
  • 配置发布路径(准备一个空的文件夹),选择发布方法为 文件系统


    image.png
  • 点击设置,如图配置,切记选择发布前删除所有现有文件


    image.png
  • 配置好后点击发布


    image.png
  • 发布成功后文件夹里会有很多打包好的文件


    image.png

安装IIS管理器

  • 在控制面版中找到程序与功能


    image.png
  • 打开启用或关闭Windows功能安装所需要的
image.png
  • 打上勾后点击确定会自动安装,安装好后打开IIS管理器(在开始里面的windows工具里)


    image.png
  • 打开IIS管理器配置网站


    image.png
  • 填写信息,路径选择刚在打包好的路径


    image.png

    在 网站 上右击选择 添加网站,输入自定义网站名(可以是项目名,比较好找),选择物理路径(项目发布文件的路径),接下来设置端口号,一定要设置且不能重复。80端口默认的不能使用,随便输入一个没有被用过的即可。主机名不要填,否则别人访问不了。点击确定就好了。

  • 这样你的项目就IIS上布置好了

常见的错误

  • 先配置如何看日志,方便分析错误
    1.打包的文件里面有最后面有一个叫web.config的文件,打开文件将
    stdoutLogEnabled="false" 改为true 后会生成一个logs文件夹,如果没有手动创建下
    日志文件就会在logs文件里。
image.png

连接本机数据库

  • 打开sqlserver选择登录名,右击选择新建登录名


    image.png
  • 点击搜索,选择高级,点击立即查找,选择SERVICE后点确定


    image.png

    image.png

    image.png

    image.png

    image.png
  • 选择服务器角色


    image.png
  • 配置IIS应用程序池,选择自己的项目右击选择高级设置,如图改标识


    image.png

    这样数据库就和项目连上了

  • 在部署项目中遇到的另一个坑,(delete请求报404)
    解决方法:
    安装IIS的时候如果选择了WebDAV(Web Distribution Authorization Versioning) Publish,则所有的Web Site默认会应用WebDAV Module和WebDAV Handler.


    image.png

    image.png

    WebDAV是基于HTTP协议的扩展,添加了很多Method用于管理服务器上的文件

WebDAV Module和WebDAV Handler
WebDAV Handler的默认配置是处理如下 Method:PROPFIND,PROPPATCH,MKCOL,PUT,COPY,DELETE,MOVE,LOCK,UNLOCK。(可以参考%userprofile%/documents/iisexpress/config/applicationhost.config中的配置)因此PUT和DELETE请求会被Dispatch给WebDAV Handler来处理,但是我们一般不会Enable WebDAV功能。因此Delete和Put请求会被拒绝。

  • 解决办法              
    既然根本原因是WebDAV,最直接的解决办法就是移除WebDAV(一般情况下我们不会用到该功能)。移除有如下几种方法:
    直接从系统中移除WebDAV Publish的整个功能(参考上面打开WebDAV Publish的截图)
    在Web Site的web.config中移除WebDAVModule和WebDAVHandler








ASP.Net Core 运行错误 Http Error 502.5 解决办法

Http Error 502.5 - Process Failure

image

如果你看到上面这张图片了的话,说明你在本地运行的时候报错了。
尤其好多都是我的群友,说下情况。

这个一般是本地的.NET Core SDK版本不统一报错造成的。

原因

当时的项目版本为.NET CORE 2.0,所以现在有很多群友下载然后运行就报错了。
现在是因为下载的SDK是2.1 。所以版本对应不上就GG 了。
理论上来说.NET CORE 2.1X是需要进行向下兼容的。但是不知道为什么这把就没有做好。
原因:项目的SDK版本和运营环境的SDK版本对应不上。
解决方案有两种,一种是升级项目的.NET CORE版本,还有一种就是安装对应的.NET CORE版本。

解决思路

首先你要去找你的IIS报错日志,得到的错误代码 ErrorCode = '0x80004005 : 8000808c.是这个的话,那就可以通过我说的办法来解决了。

第一种

通过直接修改web.config 的文件。

image
 

processPath="dotnet"改成你安装的.NET CORE SDK路径,一般默认在"C:\Program Files\dotnet\dotnet.exe"路径下,替换下就可以解决了。

这种一般是常规加临时解决方案,不稳定。

第二种

下载对应版本的SDK地址:https://www.microsoft.com/net/download/archives

image

找到对应的大版本,然后里面有具体的版本信息。

但是有个问题,你如果已经装了高版本的SDK,是无法安装低版本的SDK的,所以也不推荐这个办法。

第三种【推荐办法】

升级你项目的SDK.比如https://github.com/52ABP/52ABP.School 的.NET Core版本就是2.0,直接升级到2.1后,发布环境,所有的问题迎刃而解。

.NET Core 还很年轻,大家多给他点时间。相信他会改变不一样的开发环境

你可能感兴趣的:(在IIS上部署项目总结)