繁体   English   中英

生产机器上的aspnet核心部署正在使用开发机器路径寻找appsettings.json

[英]aspnet core deployment on production machine is looking for appsettings.json using development machine path

按照Microsoft 文档,我使用 VS 2019 发布了一个 Asp Net Core 应用程序。 按照Microsoft 文档在 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 并以管理员身份运行。 这导致了记录的错误。

这是屏幕截图

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

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

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

等等等等.......................在 C:\\inetpub\\IS4\\Program.cs:line 81

在 IS4.Program.Main(String[] args) 在 C:\\inetpub\\IS4\\Program.cs:line 58

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

有人有任何想法吗? 谢谢

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM