From 489d81e5b7cf98e8cfb2396a10fe2e47e0052953 Mon Sep 17 00:00:00 2001 From: hyh Date: Wed, 25 Jun 2025 09:17:38 +0800 Subject: [PATCH] 11asdsa --- .gitignore | 3 +- LTEMvcApp/Program.cs | 6 ++++ LTEMvcApp/appsettings.json | 3 +- LTEMvcApp/deploy-linux.sh | 59 ++++++++++++++++++++++++++++++++++++++ 4 files changed, 69 insertions(+), 2 deletions(-) create mode 100644 LTEMvcApp/deploy-linux.sh diff --git a/.gitignore b/.gitignore index 5975aa8..f637075 100644 --- a/.gitignore +++ b/.gitignore @@ -331,4 +331,5 @@ MigrationBackup/ # Ionide (cross platform F# VS Code tools) working folder .ionide/ -LogsData/ \ No newline at end of file +LogsData/ +/LTEMvcApp/.config/dotnet-tools.json diff --git a/LTEMvcApp/Program.cs b/LTEMvcApp/Program.cs index f511167..21c7f0b 100644 --- a/LTEMvcApp/Program.cs +++ b/LTEMvcApp/Program.cs @@ -2,6 +2,12 @@ using LTEMvcApp.Services; var builder = WebApplication.CreateBuilder(args); +// 配置Kestrel服务器,使用15001端口并允许IP访问 +builder.WebHost.ConfigureKestrel(serverOptions => +{ + serverOptions.ListenAnyIP(15001); // 监听所有IP地址的15001端口 +}); + // Add services to the container. builder.Services.AddControllersWithViews(); diff --git a/LTEMvcApp/appsettings.json b/LTEMvcApp/appsettings.json index 10f68b8..ed39e44 100644 --- a/LTEMvcApp/appsettings.json +++ b/LTEMvcApp/appsettings.json @@ -5,5 +5,6 @@ "Microsoft.AspNetCore": "Warning" } }, - "AllowedHosts": "*" + "AllowedHosts": "*", + "Urls": "http://0.0.0.0:15001" } diff --git a/LTEMvcApp/deploy-linux.sh b/LTEMvcApp/deploy-linux.sh new file mode 100644 index 0000000..7617cc5 --- /dev/null +++ b/LTEMvcApp/deploy-linux.sh @@ -0,0 +1,59 @@ +#!/bin/bash + +# Linux部署脚本 +echo "开始部署LTEMvcApp到Linux..." + +# 检查是否安装了.NET Runtime +if ! command -v dotnet &> /dev/null; then + echo "错误: 未找到.NET Runtime,请先安装.NET 6.0或更高版本" + echo "安装命令: sudo apt-get update && sudo apt-get install -y dotnet-runtime-6.0" + exit 1 +fi + +# 检查端口15001是否被占用 +if lsof -Pi :15001 -sTCP:LISTEN -t >/dev/null ; then + echo "警告: 端口15001已被占用,请先停止占用该端口的进程" + echo "查看占用进程: lsof -i :15001" + exit 1 +fi + +# 创建部署目录 +DEPLOY_DIR="./deploy" +if [ -d "$DEPLOY_DIR" ]; then + rm -rf "$DEPLOY_DIR" +fi +mkdir -p "$DEPLOY_DIR" + +# 发布应用 +echo "正在发布应用..." +dotnet publish -c Release -o "$DEPLOY_DIR" --self-contained false + +if [ $? -ne 0 ]; then + echo "发布失败,请检查项目配置" + exit 1 +fi + +echo "应用发布成功到目录: $DEPLOY_DIR" + +# 启动应用 +echo "正在启动应用..." +cd "$DEPLOY_DIR" +dotnet LTEMvcApp.dll & + +# 等待应用启动 +sleep 3 + +# 检查应用是否成功启动 +if curl -s http://localhost:15001 > /dev/null; then + echo "✅ 应用启动成功!" + echo "🌐 访问地址: http://localhost:15001" + echo "🌐 外部访问: http://$(hostname -I | awk '{print $1}'):15001" + echo "" + echo "📋 常用命令:" + echo " 查看日志: tail -f nohup.out" + echo " 停止应用: pkill -f LTEMvcApp" + echo " 查看进程: ps aux | grep LTEMvcApp" +else + echo "❌ 应用启动失败,请检查日志" + exit 1 +fi \ No newline at end of file