asp.net web core 部署问题汇总

   记录所有部署时遇到的问题。

   微软官网部署说明

  转载自:.NET Core 3.0 构建和部署(测试过可以使用)

    A    单文件可执行文件(文件体积较大,合并所有依赖)      

        asp.net core 项目文件(*.csproj)添加以下代码

           <RuntimeIdentifier>win10-x64</RuntimeIdentifier>
            <PublishSingleFile>true</PublishSingleFile>

   B   程序集链接(比A项文件体积小,只合并项目中使用的依赖)[有风险]

          但是启用这个特性的时候一定要注意,如果项目使用到了反射或相关动态功能(例如 ASP.NET Core  WPF,那么通常会在剪裁时损坏

 发生此损坏是因为链接器不知道此动态行为,并且不能确定反射需要哪些框架类型。 可配置 IL 链接器工具以发现这种情况。   

最重要的是,剪裁后务必对应用进行测试。 

          asp.net core 项目文件(*.csproj)添加以下代码

    <RuntimeIdentifier>win10-x64</RuntimeIdentifier>

    <PublishSingleFile>true</PublishSingleFile>

    <PublishTrimmed>true</PublishTrimmed>

   C  ReadyToRun 镜像 【改进.net core启动时间】[推荐]

     asp.net core 项目文件(*.csproj)添加以下代码

    <RuntimeIdentifier>win10-x64</RuntimeIdentifier>
    <PublishSingleFile>true</PublishSingleFile>
    <!--<PublishTrimmed>true</PublishTrimmed>-->

    <PublishReadyToRun>true</PublishReadyToRun> 

  .NET Core RunTime 下载(匹配开发.NET Core的版本)

    选择 Run apps - Runtime ----->ASP.NET Core/.NET Core: Runtime & Hosting Bundle

     选择端口  5001-65535(5000以下容易被windows占用)

  发布选项设置

     部署模式:框架依赖(推荐)【手工安装.net core runtime】

                       独立【不安装.net core runtime,适用于服务器有多个版本.Net Core,发布包已包含所有依赖的类库】

     目标运行时:可移植(推荐)

  2   部署到IIS时HTTP Error 500.30 – ANCM In-Process Start Failure,但是直接调试时没问题?Net Core 3.0 [2019/10/27]

      原因:配置文件里appsettings.json缺少符号或代码错误

      解决:的确是appsettings.json格式有问题【在网上找了JSON格式化工具】

              既然是JSON格式有问题, vs竟然也编译通过!!!

 3   IIS 单个网站启动不了,默认网站正常。

     

     原因: 端口被占用

     解决:修改端口 

 4  HTTP Error 503. The service is unavailable.

 原因:应用程序池“Test”将被自动禁用,出现严重错误。

解决方法:

下载安装 Visual C++ Redistributable for Visual Studio 2015 组件即可,重启后解决问题。
转载自 :https://blog.csdn.net/RazerFan100/article/details/88578433

5 修改部署端口5000【.NET Core 3.0】

 解决:appsettings.json 文件

           添加  "urls":"http://*:10010;http://*:10011"

发布时不包含appsettings.*.json

   注:appsettings.json还是需要的,否则全部是默认配置。

   解决: asp.net core 项目文件(*.csproj)添加以下代码

  <ItemGroup>
      <Content Remove="appsettings.Development.json"></Content>
      <None Include="appsettings.Development.json" />
  </ItemGroup>

7  发布时不生成web.config文件

 说明:appsettings.json 完全可以替代web.config

   解决: asp.net core 项目文件(*.csproj)添加以下代码   

  <IsTransformWebConfigDisabled>true</IsTransformWebConfigDisabled>

                 

原文地址:https://www.cnblogs.com/forearm/p/11749597.html