【问题标题】:aspnet core deployment on production machine is looking for appsettings.json using development machine path生产机器上的 aspnet 核心部署正在使用开发机器路径寻找 appsettings.json
【发布时间】:2020-11-25 04:24:41
【问题描述】:

Microsoft docs 之后,我使用 VS 2019 发布了一个 Asp Net Core 应用程序。 按照Microsoft docs 在 IIS 上部署应用程序。 我为我的项目安装了正确的 ASP.NET Core 模块和运行时 (3.1)。 导航到应用程序的主页(任何)页面时,我收到“无法访问此站点”响应页面。这不是来自我的 VPS 上的 IIS 的错误页面,它似乎是来自浏览器的默认页面/消息。 我的 VPS 上没有来自 IIS 事件的错误消息。

据我了解,Windows Process Activation Service (WAS) 没有启动应用程序,尽管应用程序池显示分配给它的 1 个应用程序。

所以使用 web.config,我将日志记录设置为 true。

<aspNetCore processPath=".\IS4.exe" stdoutLogEnabled="true" stdoutLogFile=".\logs\stdout" hostingModel="inprocess">

然后我进入 VPS 上项目的物理目录,右键单击 IS4.exe 并以管理员身份运行。这导致了一个被记录的错误。

Here's a screen shot

所以我的应用程序 program.cs 被传递一个空字符串而不是一个 URI。但它使用的是我的开发笔记本电脑的路径;不是生产机器上 web.config 环境变量中设置的路径。

项目中根本没有硬编码的 URL/URI。所有需要 URL / URI 的变量都在 appsettings.json 和环境变量中设置。 EG:配置["AppURLS:IS4BaseUrl"]

那么为什么日志文件的第 12 行和第 15 行没有说:

blah blah blah ...................在 C:\inetpub\IS4\Program.cs:81 行

在 C:\inetpub\IS4\Program.cs:第 58 行中的 IS4.Program.Main(String[] args) 处

我没有找到一个好的谷歌搜索词或短语来引导我找到答案,所以我想在这里问。 为什么 program.cs 会注销我的开发环境的项目目录,而不是我试图部署它的服务器的目录。我认为这是我的部署问题的根源,或者至少是一个起点。

有人有什么想法吗?谢谢

【问题讨论】:

    标签: .net-core deployment publish


    【解决方案1】:

    所以我仍然不确定为什么错误日志指向我的笔记本电脑目录而不是部署服务器的目录,但我注意到我的数据库连接字符串没有正确转义。修复连接字符串后,应用程序启动,我可以导航到应用程序并浏览网站。

    拼写和转义字符串是我的祸根:(

    【讨论】:

      猜你喜欢
      • 2013-06-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-12-28
      • 2017-04-10
      • 2010-10-27
      • 2012-04-09
      • 1970-01-01
      相关资源
      最近更新 更多