在 Azure 应用服务上使用 NetOffice.PowerPointApi
Posted
技术标签:
【中文标题】在 Azure 应用服务上使用 NetOffice.PowerPointApi【英文标题】:Use NetOffice.PowerPointApi on azure app service 【发布时间】:2021-03-17 21:21:22 【问题描述】:我编写了一个代码,将演示文稿中的所有幻灯片保存为 jpeg。它在我系统上本地的 Visual Studio 中运行良好,但是当我在 Azure 应用服务上部署它时,出现 500 内部服务器错误。
IIS 收到请求;但是,在处理请求期间发生了内部错误。此错误的根本原因取决于处理请求的模块以及发生此错误时工作进程中发生的情况。 IIS 无法访问网站或应用程序的 web.config 文件.如果 NTFS 权限设置不正确,可能会发生这种情况。 IIS 无法处理网站或应用程序的配置。 经过身份验证的用户没有使用此 DLL 的权限. 请求已映射到托管处理程序,但未安装 .NET 可扩展性功能。代码:
using pptd = NetOffice.PowerPointApi;
using NetOffice.PowerPointApi.Enums;
using NetOffice.OfficeApi.Enums;
public void genThumbnails(string originalfileName,string renamedFilename, string dirPath)
pptd.Application pptApplication = new pptd.Application();
pptd.Presentation pptPresentation = pptApplication.Presentations.Open(dirPath + renamedFilename, MsoTriState.msoFalse, MsoTriState.msoFalse, MsoTriState.msoFalse);
int i = 0;
foreach (pptd.Slide pptSlide in pptPresentation.Slides)
pptSlide.Export(dirPath + originalfileName + "_slide" + i + ".jpg", "jpg", 1280, 720);
i++;
pptPresentation.Close();
我做错了什么? NetOffice 软件包是否也需要像 Office.Interop 一样在服务器上安装 MS Office?
【问题讨论】:
【参考方案1】:标准的 Windows 和 Linux 网络应用程序使用受祝福的操作系统映像。作为 PaaS 设计的一部分,由于没有 MS Office 互操作,而且 Azure Web Apps 是一个沙盒,因此客户可以运行的内容受到限制。
我的建议是创建一个包含您需要的必要依赖项的容器映像,然后将您的自定义容器部署到 Azure Web App Container。
【讨论】:
我看过your answer in this post,你能help me read this new post吗?以上是关于在 Azure 应用服务上使用 NetOffice.PowerPointApi的主要内容,如果未能解决你的问题,请参考以下文章
在 ASP.net MVC6 网站上使用 Office 互操作
使用 Azure Active Directory 身份验证在 Linux 上重新启动 Azure 应用服务会重置 /.auth/me/
使用 Terraform 在 Azure 上部署应用服务出现未经授权的错误
使用不同租户上的 Azure Active Directory 访问 Azure Service Fabric 应用程序上的 Key Vault