zoukankan      html  css  js  c++  java
  • 分享一般.net core的web项目发布到服务器环境的处理步骤(来自本人实践笔记)

    <步骤1:发布>

       

    <步骤2:确保已打开iis web相关功能>

       [注]如果未打开在按如下操作.

        Win7/win10通过打开或关闭windows功能.

        Windows2012等服务器操作系统,需要通过添加角色进行相关处理.

    <步骤3:安装运行时等捆绑安装包>

    下载.netcore windows服务器捆绑安装包:

    V2.0.8: https://aka.ms/dotnetcore-2-windowshosting

    V2.1.2: https://www.microsoft.com/net/download/thank-you/dotnet-runtime-2.1.2-windows-hosting-bundle-installer

         [1]如果发布失败了,可能是.net core 编译和发布的版本不一致.

         

     

      <解决办法> 命令测试确定版本问题后,下载对应的.

     

     [2]如果系统没有网络连接,则请下载上述组件的底层环境:https://www.microsoft.com/download/details.aspx?id=53840  .

     <步骤4:管理员权限运行cmd命令>

     

    net stop was /y

    net start w3svc

       <步骤5: IIS上发布>

         应用程序池:无需托管.

         

    <步骤6:设置是开发环境还是生产环境>

           ASPNETCORE_ENVIRONMENT   Production|Development

    <步骤7:设置iis应用程序池,避免慢的问题>

       IIS8设置
    应用程序池-高级设置-启动模式:AlwaysRunning 
    应用程序池-高级设置-进程模型-闲置超时:1740 (分钟) 
    应用程序-高级设置-常规-预加载已启用:True 

    这样就可以解决问题了.

    但是在IIS7.5上并没有这些选项,需要安装一个模块:Application Initialization Module for IIS 7.5

    下载安装略过不提.主要记录一下配置方法.

    打开服务器上的ApplicationHost.config文件.这个文件在IIS的安装目录Config.

    添加如下内容(但是似乎不添加也行)

    <globalModules>

      <add name="ApplicationInitializationModule"

           image="%windir%System32inetsrvwarmup.dll" />

    </globalModules>

    然后设置网站应用程序和和对应的应用程序池

    <system.applicationHost>

      <applicationPools>

        <add name="West Wind West Wind Web Connection"

              autoStart="true"

              startMode="AlwaysRunning"

              managedRuntimeVersion="v4.0"

              managedPipelineMode="Integrated">

          <processModel identityType="LocalSystem"

                        setProfileEnvironment="true" />

        </add>

      </applicationPools>

      <sites>

        <site name="Default Web Site" id="1">      

          <application path="/MPress.Workflow.WebQueueMessageManager"

                        applicationPool="West Wind West Wind Web Connection"

                        preloadEnabled="true">

            <virtualDirectory path="/"

            physicalPath="C:Clients…" />

          </application>       

        </site>

      </sites>

    </system.applicationHost>

    关键在于应用程序池设置的autoStart="true" startMode="AlwaysRunning" 这两个的意思是自动自动和启动模式.

    网站应用程序设置的preloadEnabled="true"

    这样设置完成之后网站已经基本可以保证秒开了,基本解决了第一次打开速度很慢的问题.当然还遗留了一个EF首次加载缓慢的问题,额这还不知道怎么解决.似乎是没办法解决的.

      <步骤8:设置目录权限,否则可能50x错误>

     

    [参考]https://blog.csdn.net/qiandeqiande/article/details/79290086

    [1]有时发布到线上,死活不行,比如自定义一个端口,发现是vs项目中设置的调试端口与线上iis发布的端口不一致。可以通过cmd:  dotnet corelab.web.dll来看监听的端口。

  • 相关阅读:
    cordova build android get Execution failed for task ':dexArmv7Debug'
    brew install memcache get Error: Formulae found in multiple taps
    快速激活JetBrains系列产品
    NSURLSession/NSURLConnection HTTP load failed (kCFStreamErrorDomainSSL, -9802)
    `libsass` bindings not found. Try reinstalling `node-sass`?
    Cordova 快速入门记录
    perl: warning: Setting locale failed.
    httpclient源码分析之 PoolingHttpClientConnectionManager 获取连接
    httpclient源码分析之MainClientExec
    fastjson从1.1.41升级到1.2.28的坑
  • 原文地址:https://www.cnblogs.com/taohuadaozhu/p/13532609.html
Copyright © 2011-2022 走看看