C# Microsoft.Office.Interop.Word.DocumentClass.SaveAs2 COMException:命令失败

C# Microsoft.Office.Interop.Word.DocumentClass.SaveAs2 COMException:命令失败,c#,asp.net-mvc,iis,interop,office-interop,C#,Asp.net Mvc,Iis,Interop,Office Interop,我有一个ASP.NET MVC应用程序,它正在应用程序的文件夹C:\inetpub\wwwroot\MyApp\Data中生成一个临时docx文件,稍后它将转换为PDF并将其放在docx所在的同一文件夹中 应用程序池配置为使用自定义帐户运行 临时docx文件在应用程序的文件夹中正确生成,但当我尝试将其转换为PDF并保存在docx文件所在的同一文件夹中时,我收到一个COMException,表示命令失败 在C:\inetpub\wwwroot\MyApp\Data中创建docx文件后,我将其转换为

我有一个ASP.NET MVC应用程序,它正在应用程序的文件夹C:\inetpub\wwwroot\MyApp\Data中生成一个临时docx文件,稍后它将转换为PDF并将其放在docx所在的同一文件夹中

应用程序池配置为使用自定义帐户运行

临时docx文件在应用程序的文件夹中正确生成,但当我尝试将其转换为PDF并保存在docx文件所在的同一文件夹中时,我收到一个COMException,表示命令失败

在C:\inetpub\wwwroot\MyApp\Data中创建docx文件后,我将其转换为PDF并通过执行以下操作将其放置在同一文件夹中:

public void ConvertToPDF(string myDocFile)
{
    // myDocFile contains "C:\\inetpub\\wwwroot\\MyApp\\Data\\mytempdocxfile.docx"
    Document myDoc = GetMyDoc(myDocFile);

    string myPdfFile = Path.Combine(Path.GetDirectoryName(myDocFile), Path.GetFileNameWithoutExtension(myDocFile) + ".pdf");

    // myPdfFile now contains: "C:\\inetpub\\wwwroot\\MyApp\\Data\\mytempdocxfile.pdf"
    myDoc.SaveAs2(myPdfFile, WdSaveFormat.wdFormatPDF); // <--- HERE IT CRASHES: COMException command failed!!
    
    ...
}

public Document GetMyDoc(object docfile)
{
   // docFile contains "C:\\inetpub\\wwwroot\\MyApp\\Data\\mytempdocxfile.docx"

   Application wApp = new Microsoft.Office.Interop.Word.Application();
   Document myDoc = wApp.Documents.Open(ref docFile);
   
   return myDoc;
}
public void ConvertToPDF(字符串myDocFile)
{
//myDocFile包含“C:\\inetpub\\wwwroot\\MyApp\\Data\\mytempdocxfile.docx”
文档myDoc=GetMyDoc(myDocFile);
字符串myPdfFile=Path.Combine(Path.GetDirectoryName(myDocFile),Path.GetFileNameWithoutExtension(myDocFile)+“.pdf”);
//MyPdfile现在包含:“C:\\inetpub\\wwwroot\\MyApp\\Data\\mytempdocxfile.pdf”

myDoc.SaveAs2(myPdfFile,WdSaveFormat.wdFormatPDF);//注定要失败,@LexLi它与以前在应用程序池中设置的另一个域用户帐户配合得很好,但在被另一个自定义用户帐户更改后突然停止工作。根据您的描述,我建议您可以尝试使用process monitor来找出自定义帐户工作的实际原因。详细信息ils,你可以参考这个。这永远不会改变你在一条不受支持的路径上的事实。@LexLi此外,如果它注定要失败,为什么它在使用旧用户帐户之前一直工作顺利?一旦用户帐户被更改,它就停止工作了。