如何获取WOPI主机集成的file_id?部署调试遇文件加载异常
WOPI主机部署与集成问题
已完成的部署操作步骤
- 按照官方文档指引完成Office Online Server(即WOPI客户端)全量农场部署
- 验证discovery URL访问链路,服务运行状态完全正常
- 基于口碑非常好的开源WopiHost项目搭建WOPI主机服务
- 在目标服务器上完成项目代码克隆
- 从解决方案根目录通过dotnet命令行工具移除Cobalt项目
- 在解决方案根目录依次执行
dotnet clean命令清理构建缓存、dotnet build命令重新生成整个解决方案 - 在WopiHost项目目录执行
dotnet run命令启动核心WOPI服务 - 在WopiHost.Web项目目录执行
dotnet run命令启动Web交互站点 - 参照WOPI官方主机页开发规范编写Office嵌入页面,尝试完成服务集成,目前不确定实现逻辑是否正确,但页面至少可以部分加载,编写的页面代码如下:
<!doctype html> <html> <head> <meta charset="utf-8"> <!-- 兼容IE标准渲染模式 --> <meta http-equiv="x-ua-compatible" content="ie=edge"> <title></title> <meta name="description" content=""> <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, minimum-scale=1, user-scalable=no"> <link rel="shortcut icon" href="https://my-server-url.com/wv/resources/1033/FavIcon_Word.ico" /> <style type="text/css"> body { margin: 0; padding: 0; overflow: hidden; -ms-content-zooming: none; } #office_frame { width: 100%; height: 100%; position: absolute; top: 0; left: 0; right: 0; bottom: 0; margin: 0; border: none; display: block; } </style> </head> <body> <form id="office_form" name="office_form" target="office_frame" action="https://my-server-url.com/wv/wordviewerframe.aspx?ui=es-mx&rs=es-mx&dchat=1&showpagestats=1&IsLicensedUser=1&WOPISrc=http%3A%2F%2Fmy-server-url.com%3A5000%2Fwopi%2Ffiles%2Ftest.docx" method="post"> <input name="access_token" value="eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJuYW1laWQiOiIxMjM0NSIsInVuaXF1ZV9uYW1lIjoiQW5vbnltb3VzIiwiZW1haWwiOiJhbm9ueW1vdXNAZG9tYWluLnRsZCIsIlVzZXJQZXJtaXNzaW9ucyI6IlVzZXJDYW5BdHRlbmQsIFVzZXJDYW5QcmVzZW50LCBVc2VyQ2FuUmVuYW1lLCBVc2VyQ2FuV3JpdGUiLCJuYmYiOjE2MTA2MDU5NDgsImV4cCI6MTYxMDYwOTU0OCwiaWF0IjoxNjEwNjA1OTQ4fQ.KbxGcTVOa3yWCGcEHEGv9MRP_NskfViW_vyMTOupRO4" type="hidden" /> <input name="access_token_ttl" value="0" type="hidden" /> </form> <span id="frameholder"></span> <script type="text/javascript"> var frameholder = document.getElementById('frameholder'); var office_frame = document.createElement('iframe'); office_frame.name = 'office_frame'; office_frame.id = 'office_frame'; // 为无障碍访问设置框架标题 office_frame.title = 'Office Frame'; // 启用幻灯片视图下的真全屏模式 office_frame.setAttribute('allowfullscreen', 'true'); // 配置沙箱属性兼容业务流的身份跳转逻辑 office_frame.setAttribute('sandbox', 'allow-scripts allow-same-origin allow-forms allow-popups allow-top-navigation allow-popups-to-escape-sandbox'); frameholder.appendChild(office_frame); document.getElementById('office_form').submit(); </script> </body> </html>
现存的问题与疑问
- 刚接触.NET开发环境,不清楚如何获取wopi-docs文件夹下托管的文件,该目录下的文件内容呈现无法识别的类加密状态
- 手动编写的嵌入页面运行后加载失败,弹出错误提示,错误截图参考:

- 不清楚如何获取合法的file_id,将正确的参数值填入嵌入页面的WOPISrc配置中
- 不明确开源WOPI主机Web服务的正确使用方式
内容的提问来源于stack exchange,提问作者Carlos Rodríguez
相关产品推荐
相关产品推荐

