ASP.NET的Word Interop问题

时间:2011-10-11 16:09:25

标签: c# ms-word ms-office office-interop

关于Microsoft.Office.Interop.Word。

我在我的Web服务器中安装了PIA和Microsoft Office 2010,但是当我运行在我的Web服务器上发布的应用程序时,我无法生成.doc。当我在localhost中运行我的应用程序时,工作正常,并生成.doc文件。

我必须在服务器端进行一些配置才能生成.doc文件?

3 个答案:

答案 0 :(得分:3)

请记住,Office 2010并非设计为在Web服务器内运行(例如,可能无法保证线程安全),因此您可能会遇到更多困难。

相反,请考虑使用Open SDK 2.0 from Microsoft,它允许您操作(创建,编辑)Office 2010文档,这些文档只是打包(压缩)的XML文件。该技术更适合服务器使用。它也不要求您为要安装Office 2010的每个Web服务器分别拥有Office 2010许可证。

答案 1 :(得分:0)

您应该使用Open XML SDK。办公室互操作是过时的遗物,不应该使用。

下载链接:
http://www.microsoft.com/download/en/details.aspx?id=5124

以下是如何创建Word文档的简单示例:

public void HelloWorld(string docName) 
{
  // Create a Wordprocessing document. 
  using (WordprocessingDocument package = WordprocessingDocument.Create(docName, WordprocessingDocumentType.Document)) 
  {
    // Add a new main document part. 
    package.AddMainDocumentPart(); 

    // Create the Document DOM. 
    package.MainDocumentPart.Document = 
      new Document( 
        new Body( 
          new Paragraph( 
            new Run( 
              new Text("Hello World!"))))); 

    // Save changes to the main document part. 
    package.MainDocumentPart.Document.Save(); 
  } 
}

有关详细信息,请参阅此MSDN文章:
http://msdn.microsoft.com/en-us/library/dd440953%28v=office.12%29.aspx

答案 2 :(得分:0)

MS在“类似服务器的场景”(IIS / ASP.NET是一种特殊的场景)中不支持Office Interop ...请参阅http://support.microsoft.com/default.aspx?scid=kb;EN-US;q257757#kb2

您的选择包括几个图书馆(免费和商业) - 例如:

关于您获得的例外情况:

由于Windows Vista已经引入了一些更改来阻止任何Windows服务(IIS只是一些特殊的服务)做任何“类似桌面”的事情 - 这是由于安全问题...解决这种情况你需要规避MS实施的安全措施 - 我绝对不建议......