博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

Framework 4.7老项目运行到caddy

Posted on 2025-05-11 23:49  火冰·瓶  阅读(42)  评论(0)    收藏  举报

渣渣小项目,一直用的iis,之前是每年一次免费证书,现在变成了每3个月一次,有点厌烦了,于是决定迁移到caddy

老的Framework 4.7项目运行还是要依赖iis,但是不想安装完整版的iis,可以安装简版的IIS Express

1.安装IIS Express

IIS Express下载地址:https://www.microsoft.com/zh-CN/download/details.aspx?id=48264

安装以后直接运行命令:

"C:\Program Files (x86)\IIS Express\iisexpress.exe" /path:C:\wwwroot\yoursite   /port:8080

或者把IIS Express添加到系统变量中(path中增加:C:\Program Files (x86)\IIS Express),然后运行

iisexpress /path:C:\wwwroot\yoursite /port:8080

 以上方式适合简单的站点,如果需要更加灵活的配置IIS Express的站点,比如多个域名指向一个站点等,需要修改IIS Express的配置文件

IIS Express配置文件有两个,分别位于:

C:\Program Files (x86)\IIS Express\AppServer\applicationhost.config    默认配置文件,不建议修改

‪C:\Users\Administrator\Documents\IISExpress\config\applicationhost.config    用户配置文件,修改这个

 在<sites>节点中增加

            <site name="MyWebApp" id="2" serverAutoStart="true">
              <application path="/" applicationPool="Clr4IntegratedAppPool">
                <virtualDirectory path="/" physicalPath="C:\wwwroot\webapp路径" />
              </application>            
              <bindings>
                <binding protocol="http" bindingInformation="*:5056:manage.yuming1.net" />
                <binding protocol="http" bindingInformation="*:5056:manage.yuming2.com" />
              </bindings>
            </site>

其中   applicationPool="Clr4IntegratedAppPool"   是指定应用池,类似于iis中指定应用池。

然后通过命令启动站点:

iisexpress.exe  /site:MyWebApp   //多个站点就多次执行此命令

  

各个应用程序池的含义

  1. Clr4IntegratedAppPool

    • .NET 版本:v4.0

    • 管道模式:Integrated(集成模式)

    • 作用:适用于 ASP.NET 4.0 及以上 的应用,使用 IIS 集成模式处理请求。

  2. Clr4ClassicAppPool

    • .NET 版本:v4.0

    • 管道模式:Classic(经典模式)

    • 作用:适用于 ASP.NET 4.0 及以上 的应用,但使用传统的 IIS 处理方式(不集成到 IIS 管道)。

  3. Clr2IntegratedAppPool

    • .NET 版本:v2.0

    • 管道模式:Integrated(集成模式)

    • 作用:适用于 ASP.NET 2.0/3.5 的应用,使用 IIS 集成模式处理请求。

  4. Clr2ClassicAppPool

    • .NET 版本:v2.0

    • 管道模式:Classic(经典模式)

    • 作用:适用于 ASP.NET 2.0/3.5 的应用,但使用传统的 IIS 处理方式。

  5. UnmanagedClassicAppPool

    • .NET 版本:无(未托管)

    • 管道模式:Classic(经典模式)

    • 作用:用于 非 .NET 应用(如 PHP、静态 HTML 站点),不使用 .NET 运行时。

  6. IISExpressAppPool

    • .NET 版本:v4.0

    • 管道模式:Integrated(集成模式)

    • 作用:默认的 IIS Express 应用程序池,适用于 ASP.NET 4.0 及以上 的应用。

 

2.安装Framework 4.7运行环境

Framework 4.7下载地址  

https://dotnet.microsoft.com/zh-cn/download/dotnet-framework/thank-you/net47-offline-installer

 

3.在caddy中配置反向代理

xxx.yuming.com {
    reverse_proxy http://localhost:8080 {
        header_up X-Forwarded-For {remote_host}   #可选,服务端获取真实ip
        header_up X-Forwarded-Proto {scheme}      #可选,服务端获取真实协议   
    }
    encode zstd gzip      #可选,启用zstd和gzip压缩
}

 

4.配置caddy开机启动

可以使用计划任务

或注册表

注册表HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run

创建新的字符串值:

名称:Caddy

值:"C:\Program Files\Caddy\caddy.exe" run

或创建服务

cmd中运行

sc.exe create Caddy start= auto binPath= "C:\Program Files\Caddy\caddy.exe run"