4

私は現在、ある種のドキュメント管理システムを作成するために WebDAV でプロジェクトを作成しています。IIS でホストされる ASP .NET Web アプリケーションです。(IIS WebDAV を使用していませんが、このプロジェクトの変更: http://mvc4webdav.codeplex.com/

ここ数か月は正常に動作していましたが、数日前に Excel と PowerPoint が正しく動作しませんでした。

ブラウザに応じて、FFWinplugin または Sharepoint ActiveXObject (OpenDocument コントロール)を使用していました。

ユーザーがドキュメント リンクをクリックすると、次の関数がトリガーされます。

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);
        }
    }
}

fNewDocOpenDocument コントロールが IE で初期化されたかどうかを判断するために、ページの読み込み時に設定したフラグでした。

パスは次のようなものです。

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

問題はこれです:

FFWinPlugin または OpenDocument を使用して、上記の関数を呼び出して Excel/PowerPoint ファイルを開こうとすると、EditDocument適切に編集用に開かれません。どちらも保護されたビューなしで開くだけですが、編集することはできません。

  1. Excel では読み取り専用モードは表示されませんが、保存しようとすると、ドキュメントが保存されていませんと表示されます。
  2. PowerPoint では、読み取り専用モードで開きます。

作成された 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 とローカルホストの間でのみ発生するようです。

作業方法を使用してこれを修正することもできますが、使用する ms オフィス アプリケーションを決定するために多くの if-else ステートメントが必要になるため、柔軟性がなくなります。FFWinPlugin を使用すれば、そのことを気にする必要はありません。何が起こっているのか知りたいのですが、しばらくオンラインで調べても何もわかりません。

どうすればこれを修正できますか? 最初は2010をアンインストールしたらOffice 2013のインストールが壊れたのかと思ったのですが、FFWinpluginを使わないと動作します。ですから、何がうまくいかなかったのかわかりません。

4

0 に答える 0