以下是我点击按钮的代码。如果我将使用localhost运行项目,它将很好地打开word文档,但是当我要在IIS上托管这个项目并尝试通过IP从另一台机器打开它时,它会将我的页面转移到错误消息。
Microsoft.Office.Interop.Word.ApplicationClass wordApp = new Microsoft.Office.Interop.Word.ApplicationClass();
object file = "D:\\poForM.docx";
object objFalse = false;
object objTrue = true;
object missing = System.Reflection.Missing.Value;
object emptyData = string.Empty;
object readOnly = false;
object visible = true;
wordApp.Visible = true;
Microsoft.Office.Interop.Word.Document aDoc = wordApp.Documents.Open(ref file, ref missing, ref readOnly, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, visible, ref missing, ref missing, ref missing, ref missing);
aDoc.Activate();
答案 0 :(得分:0)
您的代码依赖于服务器上的Microsoft Word实例(Microsoft.Office.Interop.Word.ApplicationClass)...并且将目标文件放在服务器上的指定位置。
如果我正确理解您要执行的操作,您希望在IIS服务器上托管Word文档,但将其下载到本地计算机上进行编辑..
您可以通过在网页中提供Word文档所在的链接来执行此操作,例如:
<a href="/path/on/the/server/to/my/word/document.docx">Open Word Document</a>
然后当您单击该链接时,浏览器将下载该文档并在Word中打开它(假设它已在本地安装)
当然,如果我完全误解了你想要做的事情,请随时发表评论.......
答案 1 :(得分:0)
我相信您希望实现类似SharePoint的行为,用户可以打开该文件然后将其保存回服务器。这是一个类似的线程Possible for Word to edit documents directly off an web server without Sharepoint?。这个解决方案唯一的坏处是AFAIK它只在IE中工作。您也可以尝试new ActiveXObject("Word.Application");
而不是new ActiveXObject("SharePoint.OpenDocuments");