Ste*_*ven 4 c# asp.net com-interop
我正在使用Microsoft Interop将Word Doc保存为HTML文件,当我尝试关闭文档时出现此错误:
消息过滤器指示应用程序正忙.(来自HRESULT的异常:0x8001010A(RPC_E_SERVERCALL_RETRYLATER))
这是我的代码:
// word interop setting
object visible = true;
object readOnly = true;
object missing = Type.Missing;
object saveChanges = true;
object htmlFile = (object)Server.MapPath(@"worddoc.html");
object fileType =
(object)Microsoft.Office.Interop.Word.WdSaveFormat.wdFormatFilteredHTML;
// open document
Microsoft.Office.Interop.Word.Application wordApp =
new Microsoft.Office.Interop.Word.Application();
Microsoft.Office.Interop.Word.Document wordDoc =
wordApp.Documents.Open(ref url, ref missing, ref readOnly, ref missing,
ref missing, ref missing, ref missing, ref missing, ref missing,
ref missing, ref missing, ref visible, ref missing, ref missing,
ref missing, ref missing);
try
{
// save the file
wordDoc.SaveAs(ref htmlFile, ref fileType, ref missing, ref missing,
ref missing, ref missing, ref missing, ref missing, ref missing,
ref missing, ref missing, ref missing, ref missing, ref missing,
ref missing, ref missing);
}
catch (System.Exception ex)
{
saveChanges = false;
}
finally
{
wordDoc.Close(ref saveChanges, ref missing, ref missing); // ERROR HERE
wordApp.Quit(ref saveChanges, ref missing, ref missing);
wordDoc = null;
wordApp = null;
}
Run Code Online (Sandbox Code Playgroud)
谁知道我做错了什么?
您的代码没有任何问题.问题是你在不支持的配置中运行它,并且在这种情况下(在asp.net下运行)未定义office的行为
Microsoft目前不建议也不支持从任何无人参与的非交互式客户端应用程序或组件(包括ASP,ASP.NET,DCOM和NT服务)自动化Microsoft Office应用程序,因为Office可能会出现不稳定的行为和/或Office在此环境中运行时出现死锁或死锁.
欲了解更多信息:
http://support.microsoft.com/kb/257757
但是,您可以使用VSTO服务器文档类来处理Office文档,而无需启动Office.