繁体   English   中英

Blazor 服务器 - websocket 连接失败 1006 - PDF 查看器(文件大小为 13mb 到 20mb)

[英]Blazor Server - websocket connection to failed 1006 - PDF Viewer (with file size 13mb to 20mb)

今天是个好日子

我在使用 Blazor 服务器(ASP.NET Core)使用 pdf 查看器时遇到问题,当我们将其部署在暂存环境中时出现错误,文件类型为 Z437175BA4191210EE009 至 20,通常文件大小为 mb。

当我们的 QA 测试 pdf 查看器时,他遇到了这个错误:

“WebSocket 以状态码关闭:1006 ()”

pdf 查看器将无法工作。 这种情况很可能发生在使用公司的 VPN 时,因为每个人都在家工作,但是在办公室使用直接网络连接测试 pdf 查看器时,pdf 查看器正在工作

这是我调用 PDF 查看器的代码:

后面的代码:

//Get File from service
objFile = await myServices.GetFile(Id);
byte[] byteArray = objFile.Data;
PDFFilePath = await jSRuntime.InvokeAsync<string>("getBlobObject", Convert.ToBase64String(byteArray));

Javascript:

function getBlobObject(b64Data) {

const blob = base64ToBlob(b64Data, 'application/pdf');
const url = URL.createObjectURL(blob);


var setpdf = url;
return setpdf;

function base64ToBlob(base64, type = "application/octet-stream") {
    const binStr = atob(base64);
    const len = binStr.length;
    const arr = new Uint8Array(len);
    for (let i = 0; i < len; i++) {
        arr[i] = binStr.charCodeAt(i);
    }
    return new Blob([arr], { type: type });
}

}

Razor 页面:

<div class="d-flex flex-wrap" id="div-pdf">
<iframe src="@PDFFilePath" type="application/pdf" width="100%" height="100%" style="overflow: auto;width:100%; height:746px;"></iframe>'

有没有办法来解决这个问题? 尤其是在使用公司的 VPN 访问应用程序时? 有没有更好的方法来解决这个问题?

谢谢大家和问候。

想法一

确保您已启用LongPolling

options.Transports = HttpTransportType.WebSockets | HttpTransportType.LongPolling;

来自官方文档

使用长轮询后备传输无法通过 WebSockets 连接。 这可能是由于 VPN 或代理阻止了连接。

所以如果我们启用 LongPolling,也许我们可以通过使用 LongPolling 来解决这个问题。

想法二

  1. 尝试创建一个只有一页的pdf文件,在vpn网络下测试,看能否重现这个问题。

  2. 如果问题消失了,我们可以搜索更多关于在分页中加载 PDF 文件的信息。

暂无
暂无

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

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