我有一个 blazor Web 程序集应用程序,并且创建了 3 个项目。客户端、服务器和共享。我假设在使用 webdeploy 时所有这些都作为标准部署?
该站点的工作原理是它显示页面等。但是,当我转到通过 Http.PostAsJsonAsync() 方法联系服务器项目的页面时,我得到了 blazor 错误页面(我设置为“哎呀” ).
很明显,我没有得到关于出了什么问题的详细信息。所以我不知道发生了什么。服务器应用程序是否已编译到 Web 程序集应用程序中?如果是这样,为什么它不运行服务器代码?另外,我想另一个问题是我如何让它报告错误,以便我知道出了什么问题?
通过 Visual Studio 运行它时它工作得很好。
这是我第一次部署到托管服务器,所以很有可能我做错了什么......
我实际上调用的方法除了返回 200 消息之外什么都不做。所以我认为问题在于调用服务器方法本身。
答案 0 :(得分:0)
首先,使用日志:
@inject ILogger<MyComponent> Logger
然后将您的 Http.PostAsJsonAsync() 调用包装在 Try Catch 块中。
在 Catch 块中记录错误:
try
{
await Http.PostAsJsonAsync()
}
catch (Exception e)
{
Logger.LogError(e);
}
部署后,编辑您的 web.config 文件:
<aspNetCore processPath="dotnet"
arguments=".\Hospitillity.App.Server.dll"
stdoutLogEnabled="true" // <<< MAKE THIS true
stdoutLogFile=".\logs\stdout"
hostingModel="inprocess">
注意,设置 stdoutLogEnabled="true"。这会导致您的托管服务提供商生成日志文件。
然后在您的托管服务提供商处回收您的应用程序池。
再次连接到您的网站,在出现错误后,您应该了解有关登录错误的更多详细信息
\logs\stdout_nnnnnnnnnnnnnn_nnnnnn.log
在托管服务器上。
从那里拿走...