WopiHost

2025-12-07 0 857

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.0net9.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运行应用程序

  1. 克隆存储库:

    WopiHost\”>

    git clone https://g**ithub.c*om/petrsvihlik/WopiHost.git
    cd WopiHost
  2. 运行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协议验证和测试接口
  3. 访问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部分

下载源码

通过命令行克隆项目:

git clone https://github.com/petrsvihlik/WopiHost.git

收藏 (0) 打赏

感谢您的支持,我会继续努力的!

打开微信/支付宝扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
点赞 (0)

申明:本文由第三方发布,内容仅代表作者观点,与本网站无关。对本文以及其中全部或者部分内容的真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。本网发布或转载文章出于传递更多信息之目的,并不意味着赞同其观点或证实其描述,也不代表本网对其真实性负责。

左子网 开发教程 WopiHost https://www.zuozi.net/31861.html

AsyncFastCGI.NET
上一篇: AsyncFastCGI.NET
dagama
下一篇: dagama
常见问题
  • 1、自动:拍下后,点击(下载)链接即可下载;2、手动:拍下后,联系卖家发放即可或者联系官方找开发者发货。
查看详情
  • 1、源码默认交易周期:手动发货商品为1-3天,并且用户付款金额将会进入平台担保直到交易完成或者3-7天即可发放,如遇纠纷无限期延长收款金额直至纠纷解决或者退款!;
查看详情
  • 1、描述:源码描述(含标题)与实际源码不一致的(例:货不对板); 2、演示:有演示站时,与实际源码小于95%一致的(但描述中有”不保证完全一样、有变化的可能性”类似显著声明的除外); 3、发货:不发货可无理由退款; 4、安装:免费提供安装服务的源码但卖家不履行的; 5、收费:价格虚标,额外收取其他费用的(但描述中有显著声明或双方交易前有商定的除外); 6、其他:如质量方面的硬性常规问题BUG等。 注:经核实符合上述任一,均支持退款,但卖家予以积极解决问题则除外。
查看详情
  • 1、左子会对双方交易的过程及交易商品的快照进行永久存档,以确保交易的真实、有效、安全! 2、左子无法对如“永久包更新”、“永久技术支持”等类似交易之后的商家承诺做担保,请买家自行鉴别; 3、在源码同时有网站演示与图片演示,且站演与图演不一致时,默认按图演作为纠纷评判依据(特别声明或有商定除外); 4、在没有”无任何正当退款依据”的前提下,商品写有”一旦售出,概不支持退款”等类似的声明,视为无效声明; 5、在未拍下前,双方在QQ上所商定的交易内容,亦可成为纠纷评判依据(商定与描述冲突时,商定为准); 6、因聊天记录可作为纠纷评判依据,故双方联系时,只与对方在左子上所留的QQ、手机号沟通,以防对方不承认自我承诺。 7、虽然交易产生纠纷的几率很小,但一定要保留如聊天记录、手机短信等这样的重要信息,以防产生纠纷时便于左子介入快速处理。
查看详情

相关文章

猜你喜欢
发表评论
暂无评论
官方客服团队

为您解决烦忧 - 24小时在线 专业服务