我目前正在检索文件系统上的word文件,以便在.NET的MVC 5 razer视图中显示它。现在,在测试和使用本地计算机时,该文件正在我的本地IIS上正确显示。我还将文件保存在本地计算机上以进行测试。
在本地计算机上进行测试时,一切正常。然后,我将更改发布/部署到远程服务器的IIS,并检查该站点是否正常工作。当我转到显示Word文件的页面时,收到错误消息“处理您的请求时出错。”
代码在
之下public ActionResult GetChapterContent()
{
StringBuilder text = new StringBuilder();
Microsoft.Office.Interop.Word.Application word = new Microsoft.Office.Interop.Word.Application();
object miss = System.Reflection.Missing.Value;
object path = @"/Books/1/Chapters/1/chapter-1.docx";
//object path = @"/Books/1/Chapters/1/chapter-1.docx";
object readOnly = true;
Microsoft.Office.Interop.Word.Document docs = word.Documents.Open(ref path, ref miss, ref readOnly, ref miss, ref miss, ref miss, ref miss, ref miss, ref miss, ref miss, ref miss, ref miss, ref miss, ref miss, ref miss, ref miss);
var y = false;
for (int i = 0; i < docs.Paragraphs.Count; i++)
{
if(docs.Paragraphs[i + 1].Range.Text.Contains("***")) {
if (y == false)
{
text.Append("<span class='ci'>" + docs.Paragraphs[i + 1].Range.Text.ToString().Substring(3));
y = true;
}
else
{
text.Append(docs.Paragraphs[i + 1].Range.Text.ToString().Remove(docs.Paragraphs[i + 1].Range.Text.ToString().Length - 4, 3) + "</span>");
y = false;
}
}
else {
text.Append("" + docs.Paragraphs[i + 1].Range.Text.ToString());
}
}
return Content("DF");
}
现在,我已经设法将问题缩小到前两行代码:
StringBuilder text = new StringBuilder();
Microsoft.Office.Interop.Word.Application word = new Microsoft.Office.Interop.Word.Application();
只需拥有这两行代码就会导致错误。如果我删除它 - 一切都会好的。