在我将Visual Studio 2022更新到17.0.4 版本后,我在将Blazor WASM项目发布到Azure应用程序服务时遇到了一个奇怪的问题
当下载到用户浏览器时,我使用BrotliDecode来保持我的Blazor WASM的最小大小,如中提到的Microsoft文档
我像往常一样进行了清理和重建,然后将其部署到我的Azure应用程序服务,我得到了错误
TypeError: Failed to execute 'arrayBuffer' on 'Response': body stream already read
和
blazor.webassembly.js:1 Uncaught (in promise) TypeError: Failed to execute 'arrayBuffer' on 'Response': body stream already read
at blazor.webassembly.js:1
at async blazor.webassembly.js:1
at async blazor.webassembly.js:1
奇怪的是,这个错误只出现在非www的url上,如果我试图在url中使用www,应用程序就会正常工作。当我试图在服务器上登录时/"身份/帐户/登录";,它会将我重定向回主页。我有点困惑。
编辑:这个错误只发生在Google Chrome中,只有url没有www.,我的应用程序在Firefox、Edge和Opera上运行得很好。因此,我不确定这是Chrome问题还是我的配置有问题。
适用于任何寻求答案的人。我联系了Azure应用程序服务团队,这是一个已知的问题,.NET团队已经在处理这个问题。
我用这个技巧解决了这个问题。
1/从Azure应用程序服务中的自定义域中删除我的自定义域,而不使用www。
2/从"记录"部分删除Godaddy上的一条记录和TXT asuid。
3/将转发域添加到www.yourdomain.com
4/等待一个小时,等待转发完成。
5/从Godaddy移除那个Forward。
6/删除Godaddy自动创建的记录,以便转发到www.yourdomain.com.
7/使用没有www..的域在Azure应用程序服务上添加新的自定义域
8/如果您忘记删除,请删除没有www.的域的旧私钥证书。
9/为您在上一步中创建的没有www的域创建一个新的私钥证书。
10/将新的私钥证书添加到没有www.的域中
11/等待几秒钟/分钟以使其生效。
如果您仍然存在此问题,重新安装Chrome将修复此问题。
这只是一种欺骗谷歌浏览器重新调整你的网址的方法。转发和删除转发是我解决此问题的方法。