<步骤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%\System32\inetsrv\warmup.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来看监听的端口。

最新文章

  1. 基于Azure构建PredictionIO和Spark的推荐引擎服务
  2. STM32的12864液晶串行控制
  3. JAVA 的普通加法运算
  4. 微软BI 之SSRS 系列 - 巧用 RunningValue 函数在分组中排序并设置 RANK 排名
  5. Python单元测试框架之pytest -- 断言
  6. 将byte[]数组数据转换为图片用于预览显示
  7. Hadoop on Mac with IntelliJ IDEA - 6 解决KeyValueTextInputFormat读取时只有key值问题
  8. 获取股票历史数据和当前数据的API
  9. JVM中的Stack和Heap
  10. Linux GCC
  11. Linux常用网络测试命令
  12. Java开源博客My-Blog之docker组件化修改
  13. User Profile Service服务未能登录,无法登录
  14. 基于ASP.NET MVC 下的Extjs的Combbox加载速率问题,终于解决啦:)
  15. 【php增删改查实例】第二十六节 - 个人详情页制作
  16. STL之heap与优先级队列Priority Queue详解
  17. webGL之three.js入门3--材料篇
  18. 第三条博客 你好 Java web!
  19. 那些年的 网络通信之 TCP/IP 传输控制协议 ip 加 端口 ---
  20. 【LOJ】#2512. 「BJOI2018」链上二次求和

热门文章

  1. Educational Codeforces Round 106 (Rated for Div. 2)
  2. 齐博x1第四季《模块插件的制作》系列21-公共表单器的参数选项(7)
  3. 27.路由器Routers
  4. 使用jmx exporter采集kafka指标
  5. 什么是CLR?
  6. IOT黑客入门篇之初探Badusb
  7. 2022春每日一题:Day 13
  8. Marktext语法——Emoji表情大全
  9. VM安装Centos7操作系统
  10. 基于python的数学建模---轮廓系数的确定