当我调试我的Reaction.NET项目时,打开了两个终端.一个用于Reaction,一个用于.NET后端. 现在,当我将应用程序发布到一个文件夹时,我得到了一个wwwroot&运行时文件夹、大量的dll和一个exe文件.

因此,我知道有一个终端不再出现了,因为Reaction应用程序现在只是一个文件夹,就像普通的html网站一样.

当我调试网站时,我得到:

info: Microsoft.Hosting.Lifetime[14]
      Now listening on: https://localhost:7291
info: Microsoft.Hosting.Lifetime[14]
      Now listening on: http://localhost:5026
info: Microsoft.Hosting.Lifetime[0]
      Application started. Press Ctrl+C to shut down.
info: Microsoft.Hosting.Lifetime[0]
      Hosting environment: Development
info: Microsoft.Hosting.Lifetime[0]
      Content root path: C:\Users\renek\source\ReactNet\ReactNet
info: Microsoft.AspNetCore.SpaProxy.SpaProxyLaunchManager[0]
      No SPA development server running at https://localhost:44411 found.
info: Microsoft.AspNetCore.SpaProxy.SpaProxyMiddleware[0]
      SPA proxy is not ready. Returning temporary landing page.
info: Microsoft.AspNetCore.SpaProxy.SpaProxyMiddleware[0]
      SPA proxy is ready. Redirecting to https://localhost:44411.
info: Microsoft.AspNetCore.SpaProxy.SpaProxyLaunchManager[0]
      SPA development server running at 'https://localhost:44411'

现在,当我将项目发布到我的VPS并运行exe时:

info: Microsoft.Hosting.Lifetime[14]
      Now listening on: http://localhost:5000
info: Microsoft.Hosting.Lifetime[0]
      Application started. Press Ctrl+C to shut down.
info: Microsoft.Hosting.Lifetime[0]
      Hosting environment: Production
info: Microsoft.Hosting.Lifetime[0]
      Content root path: C:\inetpub

有人能解释一下我怎样才能得到相同的设置吗?

到目前为止,我try 过的是:

  • Launchsettings.json将值从开发改为生产:
{
  "profiles": {
    "ReactNet": {
      "commandName": "Project",
      "launchBrowser": false, // True originally
      "environmentVariables": {
        "ASPNETCORE_ENVIRONMENT": "Production", // Development originally
        "ASPNETCORE_HOSTINGSTARTUPASSEMBLIES": "Microsoft.AspNetCore.SpaProxy"
      },
      "applicationUrl": "https://localhost:7291;http://localhost:5026"
    },
    "IIS Express": {
      "commandName": "IISExpress",
      "launchBrowser": false, // True originally
      "environmentVariables": {
        "ASPNETCORE_ENVIRONMENT": "Production", // Development originally
        "ASPNETCORE_HOSTINGSTARTUPASSEMBLIES": "Microsoft.AspNetCore.SpaProxy"
      }
    }
  },
  "iisSettings": {
    "windowsAuthentication": false,
    "anonymousAuthentication": true,
    "iisExpress": {
      "applicationUrl": "http://localhost:32385",
      "sslPort": 44344
    }
  }
}

是的,我知道编辑启动设置只适用于开发.这是我真正出版的第一个项目,所以不要责怪我不知道怎么做.

推荐答案

如果您想在运行.exe时保留该端口,可以try :

var builder = WebApplication.CreateBuilder(args);
builder.WebHost.UseUrls("http://localhost:5026;https://localhost:7291");

这是document个相关的

结果是:

enter image description here

.net相关问答推荐

Docker失败文件找不到

如何使用 awslocal 通过 localstack 中的 cloudwatch events/eventbridge 触发 lambda

在 WebApi 中需要 SSL?

既然 .NET 有一个垃圾收集器,为什么我们需要终结器/析构器/dispose-pattern?

process.WaitForExit() 异步

如何解决请确保文件可访问并且它是有效的程序集或 COM 组件?

如何从 appsettings.json 中获取价值

如何遍历字典并更改值?

是否有 TLS 1.2 的 .NET 实现?

日期时间是什么意思?在 C# 中是什么意思?

如何授予所有用户对我的应用程序创建的文件的完全权限?

所有数组在 C# 中都实现了哪些接口?

.NET 中是否有可序列化的通用键/值对类?

将 StreamReader 返回到开头

ASP.NET Core (.NET Core) 和 ASP.NET Core (.NET Framework) 的区别

如何在 RabbitMQ 中设置重试次数?

将记录器作为单身人士是一个好习惯吗?

如果锁定的对象内部发生异常,它会保持锁定状态吗?

任何人都知道缺少枚举通用约束的好方法吗?

如何将我的应用程序窗口置于最前面?