WopiHost
| 包裹 | 版本 | 下载 |
|---|---|---|
WopiHost .Abstractions |
||
WopiHost .Core
|
||
WopiHost .Discovery
|
||
WopiHost .FileSystemProvider
|
||
WopiHost .Url |
介绍
该项目是WOPI主机的示例实现。基本上,它允许开发人员通过实现大量接口将自定义数据源与Office在线服务器(以前是Office Web应用程序)或任何其他WOPI客户端集成在一起。
与网络上的现有样本相比,功能 /改进
- Clean WebAPI使用ASP.NET Core MVC构建(没有引用System.Web)
- 使用新的ASP.NET核心功能(配置等)
- 可以在IIS下进行自主或运行
- 将文件操作提取为自己的抽象层(System.io不依赖)
- 包括示例实现(Windows文件系统提供商)
- 文件标识符可以是任何事物(不必与文件系统中的文件名相对应)
- 定制代币身份验证中间件
- DI到处使用
- URL发生器
- 基于WOPI发现模块
- 所有参考都是nugets
用法
先决条件
- .NET 8 SDK或.NET 9 SDK
- 推荐:VS代码或Visual Studio 2022
构建应用程序
WopiHost应用程序均针对net8.0和net9.0 。
如果您需要针对.net版本的旧版本的版本,请查看发行版:
- .NET 6
- .NET 5
- .NET Core 2.1 + .NET框架4.6
- .NET CORE 3.1 + .NET标准2.1
如果您发现Microsoft.CobaltCore的错误。*。找不到Nupkg,请删除参考文献或查看下面的cobalt。
与.net Aspire一起运行
该项目包括一个.NET ASPIRE编排,可轻松开发和部署。 。
.net aspire的先决条件
- .NET 9 SDK(Apphost项目所需)
- Docker桌面(用于容器化支持)
- 推荐:Visual Studio 2022带有.NET ASPIRE Workload或带有C#DEV套件扩展名的VS代码
使用.NET ASPIRE运行应用程序
-
克隆存储库:
WopiHost\”>
git clone https://g**ithub.c*om/petrsvihlik/WopiHost.git cd WopiHost -
运行Aspire Apphost:
dotnet run --project infra/ WopiHost .AppHost这将启动应用程序的所有三个组成部分:
- WopiHost (后端服务) –
http://*loca*lhos*t:5000- WOPI操作的API端点
- Swagger UI可用
/scalar
- WopiHost .web (frontend)
http://loc**al*host:6000(http)/https://local*ho**st:6001(https)- 用于文件管理和WOPI客户端集成的Web界面
-
WopiHost .Validator (测试工具)
http://local**host:*7000- WOPI协议验证和测试接口
- WopiHost (后端服务) –
-
访问Aspire仪表板:运行AppHost时,.NET ASPIRE将在浏览器中自动打开Aspire Dashboard。仪表板提供:
- 实时申请状态和健康监控
- 结构化日志记录和跟踪可视化
- 资源管理和配置
- 服务间沟通监控
Aspire好处
使用.net Aspire与WopiHost提供了几个优点:
- 服务编排:自动管理WopiHost ,Web Frontend和验证器之间的依赖关系
- 配置管理:通过AppHost的集中配置
- 可观察性:内置日志记录,指标和分布式跟踪
- 发展经验:自动服务发现简化了本地开发
- 准备就绪生产:易于使用容器支持到云环境
配置
Aspire配置可以通过infra/ WopiHost .AppHost/Program.cs自定义。当前设置包括:
- 服务参考和依赖项
- 每个服务的端口分配
- Web访问的外部端点配置
- 健康监测和准备就绪检查
您还可以通过以下方式自定义应用程序设置:
-
infra/ WopiHost .AppHost/appsettings.json -
infra/ WopiHost .AppHost/appsettings.Development.json
替代方案:运行单个项目
如果您不愿意单独运行项目,而没有渴望:
WopiHost
# Terminal 2 – Frontend
dotnet run –project sample/ WopiHost .Web
# Terminal 3 – Validator (optional)
dotnet run –project sample/ WopiHost .Validator\”>
# Terminal 1 - Backend dotnet run --project sample/ WopiHost # Terminal 2 - Frontend dotnet run --project sample/ WopiHost .Web # Terminal 3 - Validator (optional) dotnet run --project sample/ WopiHost .Validator
样品
有关所有样品,请参见样品。
兼容WOPI客户
运行该应用程序仅以WOPI客户端作为对应物是有意义的。 WopiHost与以下客户兼容:
办公室在线服务器2016
部署指南
请注意, WopiHost始终只能与最新版本的OO兼容,因为Microsoft还仅支持最新版本。
OOS/OWA的部署要求服务器成为域的一部分。如果您的服务器不属于任何域的一部分(例如,您正在使用VM沙箱中运行它),可以通过将计算机推广到域控制器来克服。要测试您的OWA服务器,请遵循此处的说明。要删除OWA实例,请使用Remove-OfficeWebAppsMachine 。
Microsoft 365用于网络
您可以使用WopiHost与Microsoft 365集成到Web,这将需要:
- 入职 – 申请CSPP
- 扩展提供的接口以支持Microsoft所需的功能;我们提供通过交互式WOPI-Validator测试的接口的示例实现
- 测试Microsoft 365进行Web集成
钴
过去(在Office Web Apps 2013中),一些HTTP操作需要支持MS-FSSHTTP协议(也称为“ Cobalt”)。但是,Office Online Server 2016不再是正确的。但是,如果WOPI客户端发现(通过SupportScobalt属性)WOPI主机支持钴,它将利用它,因为它更有效。
如果您需要或希望您的项目使用钴,则需要创建一个名为Microsoft.cobaltcore.nupkg,其中包含Microsoft.cobaltcore.dll。该DLL是Office Web Apps 2013 / Office Online在线服务器2016的一部分,其许可证不允许公开发行,因此,它不是此存储库的一部分。在开始使用之前,请始终确保您的OWA/OOS服务器和连接到它的用户具有有效的许可。
在您的网络项目中使用
托多
扩展
iWopistorageProvider
IWopiStorageProvider接口是需要实现的主要接口才能提供对文件的访问。这取决于您如何实施它。一个示例实现是在WopiHost .FileSystemProvider项目中。
iwopisecurityhandler
IWopiSecurityHandler接口用于身份验证和授权资源请求。一个示例实现是在WopiHost .FileSystemProvider项目中。
iWopilockProvider
IWopiLockProvider接口用于处理文件锁。一个示例实现是在WopiHost .MemoryLockProvider项目中。
checkfileinfo
CheckFileInfo不仅包含有关文件的详细信息,还包括WOPI客户端可以使用的一些其他属性。您可以通过注册OnCheckFileInfo事件来完全自定义响应(通过添加自己的 /丢失的属性)在返回之前更新任何属性。
CheckContainerInfo
CheckContainerInfo还包括一些与安全性相关的属性(由Iwopisecurityhandler检查),但是您仍然可以使用OnCheckContainerInfo事件自定义响应。
待会的其他详细信息
已知问题 /
整体体系结构,[MS-*]协议的实现或仅在代码中完成Todos有足够的改进空间。仍然需要进行许多重构,并且必须统一代码样式。因此,请随时帮助我:)
- 查看公开问题
贡献
https://learn.m**icros*oft.com/dotnet/standard/design-guidelines/
执照
- LICENDER.TXT-我的项目的许可证
- Original_work_license.txt-马克思Yu项目的一部分。该项目基于Marx Yu的项目。
- 通知。txt-申请许可证的其他注释
有用的资源
建造WOPI主机
- 官方WOPI文档
- 官方WOPI REST API参考
- WOPI主机和URL路径
- Richard Dizerega +视频的WOPI主持人办公室在线集成
MS-FSSHTTP(钴)
- https://learn.micro***soft.com/openspecs/sharepoint_protocols/ms-fsshtp/6d078cbe-2651-43a0-b460-685ac3f145
建立WOPI客户
- SharePoint 2013:建立自己的WOPI客户,第1部分
- SharePoint 2013:建立自己的WOPI客户,第2部分
