- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我在 Microsoft Azure WebApp 上托管的 Docker 容器中有一个 Shiny 的应用程序。激活使用 Azure Active Directory 登录后,该应用程序不再工作。
应用程序页面可以访问,但在 websocket 上返回错误 500 内容,如 Firefox network trace 所示。如果不使用 AAD 登录,则不会出现此错误。
我尝试将以下选项添加到/etc/shiny-server/shiny-server.conf
:
sanitize_errors off;
disable_protocols websocket xdr-polling;
这并没有解决问题,网络跟踪没有改变。如何强制 Shiny 不使用 websocket?
最佳答案
编辑:
随着新版本的 Azure 应用服务的出现,这个问题得到了解决。我的下面的解决方案不再需要了!
还建议升级到最新的 Shiny 及其底层 httpuv 库 (>= 1.5.2),这可以解决一些相关问题(请参阅 https://community.rstudio.com/t/shiny-v1-3-known-regressions-and-serious-issues/28180 )。
在我必须解决此处描述的问题之前How do I get Shiny-server to working with Azure Active Directory
原始答案(现已弃用,用于解决 Azure 应用服务问题):
我在使用 Shiny 时遇到了同样的问题:启用 Azure Active Directory (AD) 身份验证时,浏览器无法加载 Websocket 内容。 websocket 调用得到 HTTP 101(“切换协议(protocol)”)。但它在 AD 身份验证被禁用时工作,因此问题根源似乎是执行身份验证的 Azure 代理(例如,它插入了一些 HTTP header )。我通过 Shiny 服务器配置中的 disable_protocols websocket xdr-polling;
解决了问题。
关于r - 如何在 Shiny 上禁用 websocket?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54892445/
我是一名优秀的程序员,十分优秀!