Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/301.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# Word与ASP.NET的互操作问题_C#_Ms Word_Ms Office_Office Interop - Fatal编程技术网

C# Word与ASP.NET的互操作问题

C# Word与ASP.NET的互操作问题,c#,ms-word,ms-office,office-interop,C#,Ms Word,Ms Office,Office Interop,关于Microsoft.Office.Interop.Word 我在我的web服务器上安装了PIA和Microsoft Office 2010,但是当我运行在我的web服务器上发布的应用程序时,我无法生成.doc。当我在localhost中运行我的应用程序时,工作正常,并生成.doc文件 我必须在服务器端进行一些配置,以允许生成.doc文件?请记住,Office 2010不是为在web服务器内运行而设计的(例如,可能无法保证线程安全),因此您可能会遇到更多困难 取而代之的是考虑使用它,它允许您操

关于Microsoft.Office.Interop.Word

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


我必须在服务器端进行一些配置,以允许生成.doc文件?

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


取而代之的是考虑使用它,它允许您操作(创建、编辑)Office 2010文档,这些文档是简单打包(压缩)的XML文件。这种技术更适合服务器使用。它也不要求您为要安装Office 2010的每台web服务器拥有单独的Office 2010许可证。

请记住,Office 2010不是设计用于在web服务器内部运行的(例如,可能无法保证线程安全),因此您可能会遇到更多困难


取而代之的是考虑使用它,它允许您操作(创建、编辑)Office 2010文档,这些文档是简单打包(压缩)的XML文件。这种技术更适合服务器使用。对于要安装Office 2010的每个web服务器,它也不要求您拥有单独的Office 2010许可证。

为此,您应该使用Open XML SDK。office互操作是过时的遗物,不应使用

下载链接:

以下是如何创建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文章:

您应该为此使用开放式XML SDK。office互操作是过时的遗物,不应使用

下载链接:

以下是如何创建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文章:

在“类似服务器的场景”(IIS/ASP.NET是一种特殊的场景)中,MS不支持Office互操作。。。看

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

  • (免费)
  • (商业)
关于您得到的异常:


自从Windows Vista引入了一些更改来阻止任何Windows服务(IIS只是一些特殊的服务)执行任何“类似桌面”的操作-这是由于安全问题。。。要解决这种情况,您需要绕过MS实施的安全措施-我绝对不建议这样做…

在“类似服务器的场景”(IIS/ASP.NET是一种特殊类型)中,MS不支持Office Interop。。。看

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

  • (免费)
  • (商业)
关于您得到的异常:


自从Windows Vista引入了一些更改来阻止任何Windows服务(IIS只是一些特殊的服务)执行任何“类似桌面”的操作-这是由于安全问题。。。要解决这种情况,您需要绕过MS实施的安全措施-我绝对不建议这样做…

您在服务器日志中看到任何异常吗?后台打印程序无法重新打开现有打印机连接,因为它无法从注册表项读取配置信息…1005\打印机\连接。后台打印程序无法打开注册表项。如果注册表项已损坏或丢失,或者注册表最近不可用,则可能会发生这种情况。您是否在服务器日志中看到任何异常?后台打印程序无法重新打开现有打印机连接,因为它无法从注册表项…1005\Printers\Connections读取配置信息。后台打印程序无法打开注册表项。如果注册表项已损坏或丢失,或者注册表最近变得不可用,则可能会发生这种情况。我同意你的看法,但我需要一个快速解决方案,同时实施另一个类似的解决方案。@Lucas_Santos,快速解决方案不起作用。在服务器应用程序中使用Office互操作是错误的。这不是它的设计目的。@Lucas_Santos,当您必须在生产服务器上跟踪和修复由于服务器上不适当使用Office DLL而导致的问题时,请先花时间,而不是晚一点。好的,但是,我正在继承的项目中工作,另一家公司实施了我告诉您的解决方案。这是错误的,我同意大家的看法。但要实现另一个解决方案,我需要更多的时间,然后我需要一个互操作的解决方案,而我要实现一个新的解决方案,比如像你一样的OpenSDKsaid@Lucas_Santos,没有Office互操作解决方案。Office互操作在ASP.NET等服务器应用程序中不起作用。就这么简单。因此,决定在服务器应用程序中使用Office Interop的架构师可能需要支付您为修复其错误所需的额外时间。我同意您的看法,但我需要一个快速解决方案,而我需要实现另一个类似的解决方案。@Lucas_Santos,快速解决方案不起作用。在服务器应用程序中使用Office互操作是错误的。这不是它的设计目的。@Lucas_Santos,当您必须在生产服务器上跟踪和修复由于服务器上不适当使用Office DLL而导致的问题时,请先花时间,而不是晚一点。好的,但是,我正在继承的项目中工作,另一家公司实施了我告诉您的解决方案。这是错误的,我同意大家的看法。但要实现另一个解决方案,我需要更多的时间,然后我需要一个互操作的解决方案,而我要实现一个新的解决方案,比如像你一样的OpenSDKsaid@Lucas_Santos,没有Office互操作解决方案。Office互操作在ASP.NET等服务器应用程序中不起作用。就这么简单。因此,决定在服务器应用程序中使用Office互操作的架构师可能需要为此支付额外的时间