• .Net Core实践4 web 反向代理


     

    IIS 反向代理

    直接访问kestrel服务器,然而在WINDOWS上接收请求的最佳选择仍然是IIS服务器.asp.net core教程上,也是要求将kestrel放在IIS之后处理请求,而由IIS接收请求,以保护服务器

    需要做一些配置后,可以让IIS反向代理ASP.NET CORE程序

    一.下载asp.net core的IIS支持组件 dotnet-hosting-2.1.5-win.exe 下载地址 https://www.microsoft.com/net/download  在页面中选择Download .Net Core Runtime这个,下载之后安装,IIS模块会多一个

    二.新建一个站点,目录指向asp.net core程序的运行目录.将站点的应用程序池设为无托管应用程序

    三.站点的模块和映射最小需要两个模块和两个映射 静态文件,asp.net core映射, asp.netcore模块和匿名验证模块

    四.web.config

    asp.net core并不需要这个文件,由于挂IIS托管反向.所以这个文件用于IIS,它也放在asp.net core程序运行目录下.其中最重要的配置节为

    <aspNetCore processPath="dotnet"
          arguments="Web.dll"
          stdoutLogEnabled="true"
          stdoutLogFile="./">
    </aspNetCore>

    processPath 表示使用dotnet命令,运行这个web程序. 只要架设好IIS后,不需要手动启动asp.net core程序,通过这个命令,在iis启动网站后,asp.net core程序就会启动

    arguments 表示asp.net web应用程序的那个可执行文件

    后面两个可以记录日志,在调试时,日志会记录出错的地方.比如asp.net core程序没有运行起来.出错日志会记录在程序运行目录下.

    五.遇到的错误

    刚开始使用反向代理IIS 转到 UseKestrel 后.发现无法运行出现502.3错误,
    查看日志发现可能是权限不足,导致程序无法执行某些库.

    研究后发现,将用到的软件包目录添加上相应权限即可.users组,这个用户添加到目录上,读取和执行权限.

    在win10系统上,aspnetcore的软件包位置默认有两处

    一处在于
    C:Users当前用户目录下.nuget 这个文件夹下,这个是Nuget包的总目录,必须有执行权限
    二处在于
    C:Program Filesdotnet 这个目录下,这个是dotnet命令的目录,另外,nuget包的依赖包,也在这个目录下,C:Program FilesdotnetsdkNuGetFallbackFolder

    linux下运行

    上面两个路径下装了程序运行需要的所有库,如果运行时报缺少库,基本上就是这两个地方的问题
    NuGetFallbackFolder这个目录比较重要,如果发现nuget包运行失败缺少依赖项,则应检查这个目录下就没有这个包的依赖项存在.一般来讲,
    通过VS的nuget包管理器下载的包,是没有这个问题的.
    当程序部署到其它机器如linux上时,就会发生这个问题.此时,只要将这两个目录的包,对应的复制到目标机器上就可以了

  • 相关阅读:
    双色球相关
    儿童教学相关网站
    [转]javascript实现限制上传文件的大​​小
    使用存储过程 修改符合条件的数据表的相关字段 的数据类型
    [转]bat批处理实现TXT文本合并
    [转]在SQL中用正则表达式替换html标签
    [转]T4模版引擎之生成数据库实体类
    [转]C#中图片.BYTE[]和base64string的转换
    [书目20131114]微软技术丛书•快速软件开发(珍藏版) Rapid Development Taming Wild Software Schedules By Steve McConnell
    人体穴位
  • 原文地址:https://www.cnblogs.com/mirrortom/p/9775734.html
Copyright © 2020-2023  润新知