[英]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 來解決這個問題。
嘗試創建一個只有一頁的pdf文件,在vpn網絡下測試,看能否重現這個問題。
如果問題消失了,我們可以搜索更多關於在分頁中加載 PDF 文件的信息。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.