.net core服务程序在windows server上的部署

最近因为项目上的需要,使用.net core写了一个服务,用于指定word模板文件与数据,完成数据的填充(word读写使用npoi)与格式转换(使用aspose,将word转pdf)。之所以选择用.net core就是考虑到跨平台部署的问题。

1、远程至服务器(以172.16.170.75为例), 安装iis:控制面板-》程序-》启用或关闭windows功能,把internet information service下的iis管理控制台等都安装上;

 

 

 

2、安装.net core运行时:https://dotnet.microsoft.com/download  官网选择对应版本(注意我们是在服务器上部署,所以要在Run server apps 区域,选择Download Hosting Bundle):

 

 

 

3、启动iis管理器,如果在“模块” 中能看见AspNetCoreModuleV2表示安装成功;

 

 

 

 

4、在iis里新建网站:“网站”-》右键“添加网站”-》,网站名可自定,便于记忆即可,如“PdfService”;端口号输入5000(或者其他,根据需要自定)将物理路径指向pdf服务在windows server上的存放目录;

 

 

5、将网站对应的应用程序池(默认情况下,iis会自动创建一个跟网站同名的应用程序池PdfService)的.NET CLR版本改为无托管代码;

 

  6、正常情况下,此时服务应该就可以访问了。可在浏览器中输入地址测试: http://172.16.170.75:5000/api/pdf/1  如果能返回值即可。

8、安装字体。由于我们的服务使用word作为模板, 用到的字体在服务器上不一定全,因此需要把涉及到的字体安装到服务器。这个比较简单,直接copy到服务器上,右键安装即可。

 

 

-----踩坑记录(2021-06-07)---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

某个生产环境:windows server R2版本(服务器不能访问互联网),安装完成后,服务死活不行,报错500.21。估计是安装的时候无法安装完整的引用文件导致的。

最后参考了这篇文章解决: win2012 R2 配置 net core3.1 iis站点发布_lyfclear的专栏-CSDN博客

去微软官方网站下载离线安装文件,copy到服务器安装即可。

 

-----踩坑记录(2021-09-17)---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

某个生产环境,突然出现服务不可访问的情况,报错500.30,An error occurred while writing to logger(s). 日志提示 事件日志文件已满。但实际上磁盘空间足够。

 

 

 最后解决方案:修改服务对应的应用程序池中的“加载用户配置文件”为“TRUE”,问题解决。事实上该值默认就是“False”,在其他测试服务器上,该值均为False一直都没有问题。有点奇怪,先记录一下。

 

 

posted @ 2020-06-09 20:31  寒冰之光  阅读(2303)  评论(1编辑  收藏  举报