如何在 ASP.NET 核心产品服务器上禁用 "Attempting to reconnect to the server" 消息
How to disable "Attempting to reconnect to the server" message on ASP.NET Core producton server
我有一个 ASP.NET Core 3.1 C# razor 页面应用程序,它也使用一些 Blazor 服务器端 razor 组件。我已将它发布到 Windows 2008 R2 服务器上的 IIS。
但是,当在 Chrome 中用一部安卓手机 phone 浏览网站时,会定期出现一条消息:
Attemting to reconnect to the server
还有当用户有一段时间不活动时,例如关闭手机 phone 显示屏,出现一条消息
Disconnected from server. Reload page ...
该网站不是英文网站,这些通用消息不利于最终用户体验。有什么方法可以禁用这些消息,或者至少将它们翻译成另一种语言?
到目前为止,我只找到了一种方法如何在不包含任何服务器端 Blazor 组件的页面上禁用 Blazor 覆盖。这很简单,我创建了一个空接口 IPageWithBlazor
并使包含服务器端 Blazor 的所有剃须刀页面模型都实现了这个空接口。现在我可以在 _Layout.cshtml
中使用以下条件:
@if (this.Model is IPageWithBlazor)
{
<script type="text/javascript" src="~/js/blazor.polyfill.min.js"></script>
<script src="~/_framework/blazor.server.js"></script>
}
关于翻译消息有。
服务器端 Blazor 实际上也有一个答案。根据这个:ASP.NET Core Blazor hosting models,可以在 _Host.cshtml
的正文中定义一个 ID 为 components-reconnect-modal
的 div 元素,以操纵在连接时显示的叠加层失利。
看起来像这样:
<body>
...
<!-- Blazor overlay -->
<div id="components-reconnect-modal"></div>
<app>
@(await Html.RenderComponentAsync<App>(RenderMode.ServerPrerendered))
</app>
...
</body>
Blazor 根据应用的状态应用这些自定义 类。根据文档,这些 类 有效:
components-reconnect-show
:连接丢失。客户端正在尝试重新连接。显示 modal.Then 您可以使用 CSS 将自定义样式应用到屏幕叠加层。如果您想将它们全部删除,您可以选择完全不显示它们。
components-reconnect-hide
: 与服务器重新建立活动连接。隐藏模态。
components-reconnect-failed
: 重连失败,可能是网络故障。要尝试重新连接,请调用 window.Blazor.reconnect()
.
components-reconnect-rejected
: 重新连接被拒绝。已到达服务器但拒绝连接,服务器上的用户状态丢失。要重新加载应用程序,请调用 location.reload()
.
要完全隐藏叠加层,例如您可以添加此 CSS:
.components-reconnect-show, .components-reconnect-failed, .components-reconnect-rejected {
display: none;
}
如果您想要叠加层的自定义外观,您可以在 _Host.cshtml
中的 div 中填写您喜欢的内容:
<div id="components-reconnect-modal" class="my-reconnect-modal components-reconnect-hide">
<div class="show">
<p>
// Message when attempting to connect to server
</p>
</div>
<div class="failed">
<p>
// Message when failing to connect
</p>
</div>
<div class="rejected">
<p>
// Message when refused
</p>
</div>
我不知道这是否适用于客户端,因为我只使用服务器端 Blazor。
我希望这对你有用。
我有一个 ASP.NET Core 3.1 C# razor 页面应用程序,它也使用一些 Blazor 服务器端 razor 组件。我已将它发布到 Windows 2008 R2 服务器上的 IIS。 但是,当在 Chrome 中用一部安卓手机 phone 浏览网站时,会定期出现一条消息:
Attemting to reconnect to the server
还有当用户有一段时间不活动时,例如关闭手机 phone 显示屏,出现一条消息
Disconnected from server. Reload page ...
该网站不是英文网站,这些通用消息不利于最终用户体验。有什么方法可以禁用这些消息,或者至少将它们翻译成另一种语言?
到目前为止,我只找到了一种方法如何在不包含任何服务器端 Blazor 组件的页面上禁用 Blazor 覆盖。这很简单,我创建了一个空接口 IPageWithBlazor
并使包含服务器端 Blazor 的所有剃须刀页面模型都实现了这个空接口。现在我可以在 _Layout.cshtml
中使用以下条件:
@if (this.Model is IPageWithBlazor)
{
<script type="text/javascript" src="~/js/blazor.polyfill.min.js"></script>
<script src="~/_framework/blazor.server.js"></script>
}
关于翻译消息有
服务器端 Blazor 实际上也有一个答案。根据这个:ASP.NET Core Blazor hosting models,可以在 _Host.cshtml
的正文中定义一个 ID 为 components-reconnect-modal
的 div 元素,以操纵在连接时显示的叠加层失利。
看起来像这样:
<body>
...
<!-- Blazor overlay -->
<div id="components-reconnect-modal"></div>
<app>
@(await Html.RenderComponentAsync<App>(RenderMode.ServerPrerendered))
</app>
...
</body>
Blazor 根据应用的状态应用这些自定义 类。根据文档,这些 类 有效:
components-reconnect-show
:连接丢失。客户端正在尝试重新连接。显示 modal.Then 您可以使用 CSS 将自定义样式应用到屏幕叠加层。如果您想将它们全部删除,您可以选择完全不显示它们。components-reconnect-hide
: 与服务器重新建立活动连接。隐藏模态。components-reconnect-failed
: 重连失败,可能是网络故障。要尝试重新连接,请调用window.Blazor.reconnect()
.components-reconnect-rejected
: 重新连接被拒绝。已到达服务器但拒绝连接,服务器上的用户状态丢失。要重新加载应用程序,请调用location.reload()
.
要完全隐藏叠加层,例如您可以添加此 CSS:
.components-reconnect-show, .components-reconnect-failed, .components-reconnect-rejected {
display: none;
}
如果您想要叠加层的自定义外观,您可以在 _Host.cshtml
中的 div 中填写您喜欢的内容:
<div id="components-reconnect-modal" class="my-reconnect-modal components-reconnect-hide">
<div class="show">
<p>
// Message when attempting to connect to server
</p>
</div>
<div class="failed">
<p>
// Message when failing to connect
</p>
</div>
<div class="rejected">
<p>
// Message when refused
</p>
</div>
我不知道这是否适用于客户端,因为我只使用服务器端 Blazor。 我希望这对你有用。