MS Excel和Power Point无法通过WebDAV

时间:2015-05-11 08:30:48

标签: javascript c# ms-office webdav opendocument

我目前正在使用WebDAV创建一个项目来制作某种文档管理系统。它是一个托管在IIS中的ASP .NET Web应用程序。 (虽然它没有使用IIS WebDAV,但是对这个项目进行了修改: http://mvc4webdav.codeplex.com/

在过去的几个月里,它运行正常,但几天前,Excel和PowerPoint的行为都是错误的。

我使用FFWinplugin or the Sharepoint ActiveXObject (the OpenDocument Control)取决于浏览器。

当用户点击文档链接时,它将触发此功能:

function editDocument(event, path) {
    event.preventDefault();
    if (fNewDoc) {
        if (!EditDocumentButton.EditDocument(path)) {
            alert(L_EditDocumentRuntimeError_Text);
        }
    } else {
        try {
            //************************ This part works for word but not excel or power point
            //var ffWinPlugin = document.getElementById("winFirefoxPlugin");
            //var ov = ffWinPlugin.GetOfficeVersion();
            // ffWinPlugin.EditDocument(path, ov);
            //*********************************
            window.location.replace('ms-powerpoint:ofe|u|' + path); //But this works for excel and powerpoint 
        } catch (e) {
            alert(L_EditDocumentError_Text);
        }
    }
}

fNewDoc是我在页面加载时设置的标志,用于确定是否在IE中初始化了OpenDocument控件。

路径类似于:

http://localhost/appName/EditDocument/cb72e81f-fb9c-40af-962b-aa981b79bb72/Test.pptx

问题在于:

当我尝试通过调用上面的EditDocument函数打开Excel / PowerPoint文件时,使用FFWinPlugin或OpenDocument,它没有打开进行正确编辑。两者都只打开没有受保护的视图但无法编辑。

  1. 在Excel中,它不显示只读模式,但是当我尝试保存时,它表示文档未保存。
  2. 在PowerPoint中,它以只读模式打开。
  3. 我进行了调试以查看所做的WebDAV请求,结果发现他们都只是在第一个OPTIONS之后反复请求PROPFIND。

    如果我使用window.location.replace(.....),则所有3个应用程序(Word,Excel,PP)都会在受保护的视图中打开文档,并且可以进行编辑。此外,它遵循通常的WebDAV请求周期(OPTIONS-HEAD-OPTIONS-LOCK-GET-PROPFIND-UNLOCK)。如果我启用编辑,它就可以正常工作。

    我首先在Office 2013(365)上测试了该应用程序,为了向后兼容,我安装了Office 2010(我在线查看,之后我知道将它们并排放在一起是一个坏主意)。在我不久前卸载2010版本之后,整个问题就出现了。

    我在另一台计算机上测试过,问题没有发生。在线WebDAV演示也进行了测试,也没有出现任何问题。因此,问题似乎只发生在Excel / PowerPoint和localhost之间。

    我可以使用工作方法来解决这个问题,但它会使它不灵活,因为我必须有很多if-else语句来确定要使用哪个ms office应用程序。如果我使用FFWinPlugin,我不需要照顾它。所以我真的想知道发生了什么,但在网上查了一会儿后我什么都没有。

    我该如何解决这个问题?起初我认为卸载2010后Office 2013安装已损坏,但在不使用FFWinplugin时它可以正常工作。所以,现在我不确定出了什么问题。

0 个答案:

没有答案