我正在使用免费的 Shiny 服务器在 Ubuntu 上运行一个 Shiny 应用程序。 当我在浏览器(在 MacOS 或 iPhone 上)的选项卡中查看应用程序时,它工作正常。如果我让选项卡保持打开状态几分钟并返回到该选项卡,我会看到熟悉的半透明灰色覆盖层,左下方有一个矩形框,上面写着“已与服务器断开连接。重新加载”。
/var/log/shiny-server/app-name...
或 /var/log/shiny-server.log
中没有指示错误.
这是我 Shiny 的服务器配置文件:
# Define a server that listens on port 3838
server {
listen 3838;
# Define a location at the base URL
location / {
# Defines the amount of time (in seconds) an R process with no active connections should remain open.
app_idle_timeout 0;
# Host the directory of Shiny Apps stored in this directory
site_dir /srv/shiny-server;
# Log all Shiny output to files in this directory
log_dir /var/log/shiny-server;
# When a user visits the base URL rather than a particular application,
# an index of the applications available in this directory will be shown.
directory_index on;
}
}
基于此post ,我认为添加 app_idle_timeout 0;
会阻止这种情况的发生。它没有。
运行 /opt/shiny-server/bin/shiny-server --version
结果:
Shiny Server v1.5.14.948
据我所知,Dean Attali 已创建,shinydisconnect , 作为一种使此消息看起来更好的方法。但是,我想知道如果没有发生错误,如何完全避免出现此消息。
最佳答案
“与服务器断开连接”错误是一条通用消息,表示 R session 由于某种原因已关闭。发生这种情况的原因有很多,从丢失对象到加载数据的时间太长,再到使用禁止的包,再到达到应用程序超时设置。
遇到此错误时,您应该做的第一件事是检查应用程序日志。这可以在 shinyapps.io 仪表板中访问,在应用程序 View 中的日志选项卡下,或者通过在 RStudio 控制台中运行 rsconnect::showLogs() 来访问。
此日志将包含有关应用程序启动和运行的信息。在此过程中遇到的任何错误都将显示在这里,与您在自己的 R 进程中本地运行 shiny 应用程序时创建的日志相当。
它也可能有助于在应用程序运行时检查浏览器中的 Javascript 控制台,这可能会显示与您的应用程序相关的其他错误和消息。检查此项的具体说明将因您的浏览器而异。
如果您看到与应用程序的数据、代码或工作区相关的错误,您需要先修复这些错误,然后应用程序才能正确加载。请记住,部署到 shinyapps.io 的应用程序必须是独立和自包含的,因此应用程序所需的所有数据、工作区对象和其他资源都必须与其一起部署,或通过互联网访问。
即使应用程序日志中没有错误,问题也可能出在您的代码中。有许多在线资源可帮助您调试和优化您的应用程序,包括我们的 Debugging Shiny Applications 文章和 shinyapps-users Google group。
请注意,您的应用可能在本地运行良好,但一旦受到多个用户的负载,就会在 shinyapps.io 上运行失败。发生这种情况的原因有多种,包括但不限于:
加载数据后忘记关闭每个数据库连接 对公共(public) API 进行多次长时间运行的调用 次优的应用程序实例或工作人员配置 最后,我们的缩放和调优文章介绍了有关优化 shinyapps.io 应用程序性能的最佳实践。
关于r - Shiny 的应用程序与服务器断开连接。没有错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64095798/