发布Asp.net核心应用程序时,它会生成具有以下配置的web.config
<aspNetCore processPath=".\MyApplication.exe" stdoutLogEnabled="false" stdoutLogFile=".\logs\stdout" hostingModel="inprocess" />
您可以使用processPath=".\MyApplication.exe"或processPath=".\MyApplication.dll"
有没有人知道每一个开关的优点和缺点,什么时候我们应该使用哪一个?
谢谢你的进阶!
发布于 2020-12-28 12:34:54
通常,我不认为你在那里有太多的选择。据我所知,有两种选择:
.exe的路径来运行自包含的应用程序。dotnet可执行文件的路径并将路径传递给应用程序DLL来运行依赖于框架的应用程序。这也是文件显示以及当您从Visual或通过dotnet发布ASP.NET核心应用程序时自动发生的情况。因此,转换后的web.config应该具有以下任何一种配置:
<!-- self-contained application -->
<aspNetCore processPath=".\MyApp.exe" … />
<!-- framework-dependent application -->
<aspNetCore processPath="dotnet" arguments=".\MyApp.dll" … />这里的框架相关应用程序配置假设dotnet可执行文件位于PATH环境变量中。否则,还可以指定绝对路径。
我个人从未见过<aspNetCore processPath=".\MyApp.dll" … />,如果这能奏效,我会感到惊讶,因为IIS的ASP.NET核心托管模块实际上并没有提供任何启动.NET核心应用程序的知识(至少据我所知)。这就是为什么您通常必须指定可执行的路径(应用程序的.exe本身或运行时可执行文件)。
至于使用这些选项中的哪一个,这实际上取决于您希望如何运行应用程序。如果您将应用程序发布为自包含的,则运行库已经包括在内,您这样做是为了独立于可能安装在机器上的全局运行时。如果您将应用程序发布为依赖于框架的应用程序,则依赖于机器上可用的框架(也可以集中更新等)。
https://stackoverflow.com/questions/65468334
复制相似问题