【发布时间】:2017-10-17 16:09:10
【问题描述】:
我来自桌面应用程序世界(WPF、WinForms),惯例是将你的 exe 部署到\Program Files[ (x86)]\CompanyName\AppName\ 目录,并将所有数据存储在\Program Data\CompanyName\AppName\ 目录中。
在桌面(而非服务器)PC 上部署 Asp.NET Core Web 服务的相应约定是什么? Program Files 目录似乎不是一个好主意,因为它需要管理员凭据才能写入,这是您在尝试发布应用程序时遇到的问题。另一方面,虽然Program Data 没有权限问题,但感觉不对,因为没有对应的Program Files 位置。
当涉及 IIS 时,我还看到使用 C:\intepub\wwwroot\web-service-name。这是要走的路吗?我猜想在 IIS 后面的 Kestrel 中运行 Asp.Net Core 应用程序作为反向代理是有意义的,但是如果我将我的应用程序托管在 Windows 服务中呢?
【问题讨论】:
-
在
Program Files下,有很多最终用户以及企业应用程序部署为带有嵌入式 Web 应用程序(使用 Apache、tomcat..etc)的 Windows 服务,例如:HPE 服务器管理/配置工具。因此,对于 Kestrel APP,我将在Program Files和Program Data下的日志、数据库等中分解 bin。由于dotnet二进制文件具有所需的权限,因此它可以在没有权限问题的情况下工作。 -
@JawadAlShaikh 发表您的评论作为答案,我会接受。
标签: deployment asp.net-core publishing conventions web-publishing