首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么我在通过dotnet运行ASP.NET核心应用程序时看到的是项目目录名而不是dotnet(进程外)?

为什么我在通过dotnet运行ASP.NET核心应用程序时看到的是项目目录名而不是dotnet(进程外)?
EN

Stack Overflow用户
提问于 2020-06-09 06:33:06
回答 1查看 480关注 0票数 3

我创建了一个名为EmployeeManagement.的示例ASP.NET核心应用程序该应用程序被明确地配置为out-of-process主机,如下所示,

代码语言:javascript
复制
<PropertyGroup>
    <TargetFramework>netcoreapp3.1</TargetFramework>
    <AspNetCoreHostingModel>OutOfProcess</AspNetCoreHostingModel>
</PropertyGroup>

此应用程序的主要目标是显示当前正在运行的进程名。

代码语言:javascript
复制
public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
  ...

  app.UseEndpoints(endpoints =>
  {
   endpoints.MapGet("/", async context =>
   {
      await context.Response.WriteAsync(System.Diagnostics.Process.GetCurrentProcess().ProcessName);
   });
  });
}

当我使用dotnet运行应用程序时,它将显示

EmployeeManagement

为什么它不显示dotnet作为进程名?当我们使用dotnet 运行应用程序时,应用程序可能托管并运行在Kestrel服务器中。因此,我假设dotnet.exe应该是托管过程。

如果应用程序配置为InProcess宿主模型。它显示

iisexpress

作为进程名。目标框架是.NET Core3.1版本。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-06-09 07:45:53

从ASP.NET Core3.0开始,将为您当前构建的平台自动生成一个主机exe ("apphost") (除了macOS由于其签名/公证要求),因此您的bin文件夹中的EmployeeManagement.exe将用于运行.NET核心运行时。

如果直接使用dotnet bin\netcoreapp3.1\EmployeeManagement.dll或在csproj中设置以下内容,您应该会看到不同之处:

代码语言:javascript
复制
<PropertyGroup>
  <UseAppHost>False</UseAppHost>
</PropertyGroup>
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62276413

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档