none
OMPM (Office Migration Planning Manager)のofc.exeをサーバサイドで実行させたい RRS feed

  • 質問

  • OMPM (Office Migration Planning Manager)
    http://www.microsoft.com/downloads/details.aspx?familyid=13580cd7-a8bc-40ef-8281-dd2c325a5a81&displaylang=en
    に含まれるofc.exeをサーバサイドで動かし、クライアントからpostされたバイナリ形式のofficeファイルを
    office open xml形式(2007形式)に変換させようともくろんでいたのですが、
    ofc.exeのプロセス生成まではできたものの、変換できていません。

    サーバは32bit版windows server 2003 standard、
    webアプリはasp1.1で作っています。

    iniを書き換え、コマンドプロンプトで実行させると変換できているのですが、
    サーバからofc.exeを呼び出そうとすると変換されていません。

    どなたか情報をお持ちでないでしょうか。

    よろしくお願いします。
    2009年2月6日 7:25

すべての返信

  • こんにちは!(^^)!ふ~です。

    http://social.msdn.microsoft.com/Forums/ja-JP/csharpgeneralja/thread/1a16eca5-1ad9-4284-839b-d7e218b76ae8

    サーバーからEXE形式を呼び出すのは、asp1.1では、難しいと思いまが、Microsoft .NET Framework 3.5 Service Pack 1ですとサーバーでもEXE形式が実行できると聞いております。

    http://www.microsoft.com/downloads/details.aspx?familyid=AB99342F-5D1A-413D-8319-81DA479AB0D7&displaylang=ja


    抜粋『ネットワーク共有から開かれているマネージ アプリケーションは、完全信頼で実行されることによって、ネイティブ アプリケーションと同じように動作します。』と有ります。

    「ofc.exe」がマネージ アプリケーションであれば動作すると思われますが、アンマネージでは困難が予想されます。

    ここより「MSDN > フォーラム ホーム > .Net Framework > ASP.NET」が良いのではと思います。

    以上

    2009年2月12日 9:06
  • !(^^)!ふ~ さん の発言:

    http://www.microsoft.com/downloads/details.aspx?familyid=AB99342F-5D1A-413D-8319-81DA479AB0D7&displaylang=ja

    抜粋『ネットワーク共有から開かれているマネージ アプリケーションは、完全信頼で実行されることによって、ネイティブ アプリケーションと同じように動作します。』と有ります。

    「ofc.exe」がマネージ アプリケーションであれば動作すると思われますが、アンマネージでは困難が予想されます。


    この一文における「アンマネージ」が何を指し示すか特定しにくいですが、「アンマネージ アプリケーション」であるならば、それは「ネイティブ アプリケーション」を意味するものではありませんか?
    よって、「ネイティブアプリケーションと同じように動作します」に対して、「アンマネージでは困難が予想される」と主張されることはよく分かりません。

    t98907 さん の発言:

    iniを書き換え、コマンドプロンプトで実行させると変換できているのですが、
    サーバからofc.exeを呼び出そうとすると変換されていません。

    どなたか情報をお持ちでないでしょうか。

    Office系のアプリケーションは、サーバーサイドで使われることを意図して設計されていません。
    従って、ofc.exeを実行するセッション(ユーザアカウントであるとか、環境であるとか、色々)が不適当なのではないかと思います。
    (デスクトップユーザとしてログオンした上で、コンソールアプリケーションからの起動である場合、対話的にログオンしているユーザとして正しく動作するはず)
    ライセンス関連も気にしないといけないかもしれません。


    サーバーサイドの事柄は詳しくないため、申し訳ありませんが、詳細な説明はできません。

    参考:
    http://support.microsoft.com/kb/257757/ja



    参考になった返信には「回答としてマーク」のボタンを利用して、回答に設定しましょう(複数に指定できます)。
    2009年2月12日 14:10
    モデレータ
  • Azuleanさん の発言より:

    この一文における「アンマネージ」が何を指し示すか特定しにくいですが、「アンマネージ アプリケーション」であるならば、それは「ネイティブ アプリケーション」を意味するものではありませんか?
    よって、「ネイティブアプリケーションと同じように動作します」に対して、「アンマネージでは困難が予想される」と主張されることはよく分かりません。

    おはようございます!(^^)!ふ~です。

    ofc.exeの実行方法  

    1.「アンマネージアプリケーション」では、サーバー側から、クライアント側へダウンロードして、実行する方式
    2.「マネージアプリケーション」の一部の動作を禁止した従来のノータッチ・デプロイメント方式
    3.「マネージアプリケーション」をより便利に動作させるClickOnce アプリケーション方式

    サーバー側にあるプログラムをクライアント側で実行させるには、1~3の方法を想定しております。私の話では、トロイの木馬や、ウイルス的動作、スパイプログラムなどは想定外です。私はふ~中国人、ドクタフ~でも有りません。ネイティブな日本のオヤジでございます。ofc.exeが、2と3に対応していれば、話は簡単ですが、1であれば、困難が予想されると言っております。

    MSDNのお話
    C#: Calling ofc.exeofcProcess.StartInfo.FileName = "ofc.exe";
    ofcProcess.StartInfo.Arguments = "ofc.ini";
    http://social.msdn.microsoft.com/Forums/en-US/oxmlsdk/thread/207db064-8e2b-4b26-a8c0-9b0ce2371ca0/

    困難な理由
    ofc.exeは(ネイティブ≒Win32)であると仮定しますと、一度、サーバー側から、クライアント側に、材料とofc.exeとofc.iniを送り込み、2か3のマネージアプリーションからプロセス起動する事になると思います。セキュリティの問題をクリアできるかなどです。また、サーバー側でofc.exeを起動し結果をクライアント側に送り込む事も考えられますがサーバ負荷が増加するので心配です。

    以上
    2009年2月12日 19:06
  • 本筋とずれますが、ご容赦下さい。

    !(^^)!ふ~ さん の発言:

    http://www.microsoft.com/downloads/details.aspx?familyid=AB99342F-5D1A-413D-8319-81DA479AB0D7&displaylang=ja

    抜粋『ネットワーク共有から開かれているマネージ アプリケーションは、完全信頼で実行されることによって、ネイティブ アプリケーションと同じように動作します。』と有ります。

    まず、この3.5 SP1での変更点ですが、イントラネットであるとか、ファイル共有サーバーであるとか、そういった場所に配置されたマネージアプリケーションの動作に関するポリシーが変更されたものです。
    3.5までのバージョンでは、イントラネットゾーンとして実行され、コードのアクセス許可が制限されており、アンマネージなAPIやDLLに依存しているとまともに実行できないといったトラブルがありました。

    これに対して、ネイティブアプリケーションは、元々そういった制限機構は存在せず、エクスプローラから実行するときに、警告が出ますが、それの警告を抜けてしまうと、特にコードの実行許可とか制限はありませんでした。

    3.5 SP1ではポリシーが変更され、マイコンピュータゾーン(というよりは、完全な信頼か)で実行されるようになり、それらの制限がなくなりました。
    そう言う意味で「完全信頼で実行されることによって、ネイティブアプリケーションと同じように動作する」ようになりました。


    この変更点を根拠として、「アンマネージアプリケーションでは困難が予想される」と主張されるのは、不適当ではないかという意図で先の発言をしています。

    !(^^)!ふ~ さん の発言:

    ofc.exeの実行方法  

    1.「アンマネージアプリケーション」では、サーバー側から、クライアント側へダウンロードして、実行する方式
    2.「マネージアプリケーション」の一部の動作を禁止した従来のノータッチ・デプロイメント方式
    3.「マネージアプリケーション」をより便利に動作させるClickOnce アプリケーション方式

    サーバー側にあるプログラムをクライアント側で実行させるには、1~3の方法を想定しております。

    前提が違いませんか?
    「クライアントからはOfficeのファイルを送信し、サーバー側で受け取ったファイルをサーバー自身でOffice Open XML形式に変換(ofc.exeを実行)して、クライアントに変換結果を返したい」という話のはずです。
    ご提示されている手法は、サーバー側に配置して、クライアント側で実行する手法であるため、元の質問に対する答えにはなっていないのではないかと思っています。


    参考になった返信には「回答としてマーク」のボタンを利用して、回答に設定しましょう(未解決の場合を除く)。
    2009年2月13日 13:49
    モデレータ
  • こんばんは!(^^)!ふ~です。

    >Office系のアプリケーションは、サーバーサイドで使われることを意図して設計されていません。
    >従って、ofc.exeを実行するセッション(ユーザアカウントであるとか、環境であるとか、色々)が不適当なのではないかと思います。
    >(デスクトップユーザとしてログオンした上で、コンソールアプリケーションからの起動である場合、対話的にログオンしているユーザ>として正しく動作するはず)
    >ライセンス関連も気にしないといけないかもしれません。

    流れから考えますと、サーバーサイドでは、難しいとのご発言があったかと思います。
    その意図から、ofc.exeをクライアント側で動す事を考えたようです。(その時は)

    ここでは、エクスプローラーでの実行の話も出てきますが、私の話は、ノータッチ・デプロイメント方式
    、ClickOnce アプリケーション方式はクライアントのWebからのEXEの直接実行です。繰り返しますが
    ここより「MSDN > フォーラム ホーム > .Net Framework > ASP.NET」が良いのではと思います。

    ◆サーバーサイトでのOffice系のアプリケーション実行する場合の考察です。ご参考資料

    Office のサーバーサイド オートメーションについて
    http://support.microsoft.com/default.aspx/kb/257757/ja


    以上

    2009年2月13日 16:27