ASP.NET应用OIDC迁移:443端口冲突下的应用启停切换方案
解决ASP.NET应用共用443端口的启停切换方案
由于443端口属于独占式监听端口,同一时间仅能有一个进程绑定该端口,因此只需通过启停应用释放/占用端口即可实现切换,以下是具体操作方案:
方法一:命令行手动启停
- 定位占用443端口的进程:
打开管理员权限的命令提示符或PowerShell,执行:
输出结果中最后一列即为占用端口的进程PID。netstat -ano | findstr ":443" - 终止目标进程:
执行命令强制终止进程,释放端口:taskkill /F /PID <进程PID> - 启动目标ASP.NET应用:
若为自托管应用,执行dotnet run(需进入应用目录);若为IIS部署,启动对应站点或应用池即可。
方法二:IIS可视化管理(适用于IIS部署场景)
- 打开IIS管理器,定位到两个目标站点;
- 右键当前运行的站点,选择停止,等待1-2秒确认端口释放;
- 右键需要切换运行的站点,选择启动完成切换。
方法三:编写脚本实现一键切换
可以编写PowerShell脚本自动化完成切换操作,示例如下(根据实际部署场景调整):
# 针对IIS应用池场景 # 停止当前运行的应用池 Stop-WebAppPool -Name "YourFirstAppPool" # 启动目标应用池 Start-WebAppPool -Name "YourSecondAppPool" # 针对自托管应用场景 # 查找并终止占用443端口的进程 $targetProcess = Get-NetTCPConnection -LocalPort 443 | Select-Object -ExpandProperty OwningProcess | Get-Process -ErrorAction SilentlyContinue if ($targetProcess) { Stop-Process -Id $targetProcess.Id -Force } # 启动目标自托管应用 Start-Process "dotnet" -ArgumentList "D:\Apps\YourSecondApp\YourApp.dll"
关键注意事项
- 切换完成后,建议清除浏览器缓存及OIDC相关会话Cookie,避免因残留的旧认证会话导致登录异常;
- 自托管应用启动时需使用管理员权限,否则可能无法完成443端口的绑定操作。
内容的提问来源于stack exchange,提问作者Sid
相关产品推荐
相关产品推荐

