大家好
我在使用pdf查看器使用ASP.NET核心时遇到了问题,当我们将它部署到暂存环境中时会发生错误,文件类型为pdf,通常的文件大小为13 mb到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:
函数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 });
}
}
剃须刀页:
<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访问应用程序时?有什么更好的方法让它起作用吗?
谢谢大家的问候。
发布于 2022-02-04 06:26:37
观念一
确保你有LongPolling
。
options.Transports = HttpTransportType.WebSockets | HttpTransportType.LongPolling;
来自正式的医生。
使用长轮询回送传输时,未能通过WebSockets连接。这可能是由于VPN或代理阻塞了连接。
因此,如果我们启用LongPolling,也许我们可以通过使用LongPolling来解决这个问题。
概念二
https://stackoverflow.com/questions/70965397
复制相似问题