将 Asp.NET 桌面上的核心应用程序发布到哪个目录?
What directory to publish Asp.NET Core application on desktop to?
我来自桌面应用程序世界(WPF、WinForms),惯例是将您的 exe 部署到 \Program Files[ (x86)]\CompanyName\AppName\
目录,并将所有数据存储在 \Program Data\CompanyName\AppName\
目录中。
在台式机(而非服务器)PC 上部署 Asp.NET 核心 Web 服务的相应约定是什么? Program Files
目录似乎不是一个好主意,因为它需要管理员凭据才能写入,这是您在尝试发布应用程序时遇到的问题。另一方面,虽然 Program Data
没有权限问题,但感觉不对,因为没有相应的 Program Files
位置。
我还看到 C:\intepub\wwwroot\web-service-name
在涉及 IIS 时使用过。那是要走的路吗?我猜想当 运行 Asp.Net Kestrel 中的核心应用程序作为反向代理在 IIS 后面时是有意义的,但是如果我将我的应用程序托管在 Windows 服务中呢?
有许多最终用户和企业应用程序部署为 windows 服务,带有嵌入式 Web 应用程序(使用 Apache,tomcat..等)在 Program Files
下,例如: HPE 服务器 admin/config 工具。
所以对于Kestrel APP,我会在Program Files
下部署bin,在Program Data
下写日志,DB等。它可以在没有权限问题的情况下工作,因为 dotnet
二进制文件具有所需的权限。
我来自桌面应用程序世界(WPF、WinForms),惯例是将您的 exe 部署到 \Program Files[ (x86)]\CompanyName\AppName\
目录,并将所有数据存储在 \Program Data\CompanyName\AppName\
目录中。
在台式机(而非服务器)PC 上部署 Asp.NET 核心 Web 服务的相应约定是什么? Program Files
目录似乎不是一个好主意,因为它需要管理员凭据才能写入,这是您在尝试发布应用程序时遇到的问题。另一方面,虽然 Program Data
没有权限问题,但感觉不对,因为没有相应的 Program Files
位置。
我还看到 C:\intepub\wwwroot\web-service-name
在涉及 IIS 时使用过。那是要走的路吗?我猜想当 运行 Asp.Net Kestrel 中的核心应用程序作为反向代理在 IIS 后面时是有意义的,但是如果我将我的应用程序托管在 Windows 服务中呢?
有许多最终用户和企业应用程序部署为 windows 服务,带有嵌入式 Web 应用程序(使用 Apache,tomcat..等)在 Program Files
下,例如: HPE 服务器 admin/config 工具。
所以对于Kestrel APP,我会在Program Files
下部署bin,在Program Data
下写日志,DB等。它可以在没有权限问题的情况下工作,因为 dotnet
二进制文件具有所需的权限。