当我打开word文档并将其保存在我的机器上时,它工作正常,但是当我将它上传到服务器上并在那里打开它时,它会if (doc == null)
阻塞,它不应该去。
如果它不相关,请更新我的问题标题或要求任何澄清。
这是我的课:
using System;
using System.Collections.Generic;
using System.Web;
using Microsoft.Office.Interop.Word;
/// <summary>
/// Summary description for ClsWordExManager
/// </summary>
public class ClsWordExManager
{
public enum Extension
{
WebPage = 0
}
private static string HtmExtension
{
get
{
return ".htm";
}
}
private static Application objWordApp = null;
private static object objMissing = System.Reflection.Missing.Value;
private static Document doc = null;
static ClsWordExManager()
{
try
{
objWordApp = new Application();
}
catch (Exception ex)
{
throw ex;
}
}
public static void InitializeClass()
{
objWordApp.Visible = false;
}
private static string Open(object strFilePath)
{
string str = string.Empty;
try
{
objWordApp.Visible = false;
str += "<br /> word App visiblitly false";
}
catch (Exception ex)
{
objWordApp = new Application();
str += ex.Message;
}
try
{
doc = objWordApp.Documents.Open(ref strFilePath, ref objMissing, ref objMissing, ref objMissing, ref objMissing, ref objMissing, ref objMissing, ref objMissing, ref objMissing, ref objMissing, ref objMissing, ref objMissing, ref objMissing, ref objMissing, ref objMissing, ref objMissing);
str += "<br /> word document opened";
if (doc == null)
{
// It is null when I upload it on Windows Server 2008 with office 2007 installed.
str += "<br /> After openging its null";
}
}
catch (Exception ex)
{
Close();
objWordApp.Visible = false;
str += "<br /> word document closed with : " + ex.Message;
}
return str;
}
private static void Close()
{
try
{
doc.Close(ref objMissing, ref objMissing, ref objMissing);
}
catch
{
}
}
private static string SaveAs(string FilePath, string strFileExtension, WdSaveFormat objSaveFormat)
{
try
{
if (ClsCommon.IsValidUser()) // impersonating User
{
FilePath = System.IO.Path.ChangeExtension(FilePath, strFileExtension);
try
{
if (doc != null)
{
object objFilePath = FilePath;
object objFormat = objSaveFormat;
doc.SaveAs(ref objFilePath, ref objFormat, ref objMissing, ref objMissing, ref objMissing, ref objMissing, ref objMissing, ref objMissing, ref objMissing, ref objMissing, ref objMissing, ref objMissing, ref objMissing, ref objMissing, ref objMissing, ref objMissing);
}
else
{
FilePath += "document value is null";
}
}
catch
{
FilePath += "<br /> Saving document throwing expe";
return FilePath;
}
}
else
{
FilePath += "<br /> Not valid for saving file ";
}
}
catch (Exception ex)
{
FilePath += ex.Message;
}
finally
{
Close();
}
return FilePath;
}
public static string ReadWordFile(string strFilePath, Extension objExtension)
{
string strFileContent = "<br /> Reading Word File could not be completed";
try
{
strFileContent += Open(strFilePath);
if (objExtension == Extension.WebPage)
{
try
{
string strNewFileName = SaveAs(strFilePath, HtmExtension, WdSaveFormat.wdFormatFilteredHTML);
if (strNewFileName != "")
{
strFileContent += strNewFileName + ClsCommon.ReadFile(strNewFileName, true); // ignore this line as it just read html file.
}
else
{
strFileContent += "file not saved";
}
}
catch (Exception ex)
{
strFileContent += ex.Message;
}
}
else
{
Close();
}
}
catch (Exception exx)
{
strFileContent += exx.Message;
}
return strFileContent;
}
public static void Quit()
{
try
{
objWordApp.Quit(ref objMissing, ref objMissing, ref objMissing);
}
catch
{
}
}
}