Interop.Word.Applicationを使用して.docxファイルを開いてPDFに変換しようとしています。コンソールアプリケーションとして機能しますが、Webアプリケーションで同じものを使用すると機能しません。フォルダのアクセス許可を確認しようとしました。フルコントロールで「ネットワークサービス」を指定しましたが、Word.Documents.Openでオブジェクト参照が設定されていません。何が問題なのか教えていただけませんか?このエラーです。お知らせください。提案があれば感謝します。ありがとうございます。
Microsoft.Office.Interop.Word.Application Word = new Microsoft.Office.Interop.Word.Application();
object oMissing = System.Reflection.Missing.Value;
Word.Visible = false;
Word.ScreenUpdating = false;
string fileName = @"c:\OUTPUT\test.docx");
Document doc = Word.Documents.Open(filename, ref oMissing,
ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing,
ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing,
ref oMissing, ref oMissing, ref oMissing, ref oMissing);
doc.Activate();
あなたがまだ答えを探しているなら、私は私のプロジェクトで少し前にそれを見つけました。
DCOM構成設定を開きます。
dcomcnfg.exe
Microsoft Word 97-2003 Documents
->プロパティを検索しますタブIdentity
、Launching User
からInteractive User
に変更
これを試してみてください。
それは解決策を探して長い長い長い一日の後に私のために働きます。
プロファイルの問題であるように思われます。
これでうまくいきました。 https://social.msdn.Microsoft.com/Forums/en-US/0f5448a7-72ed-4f16-8b87-922b71892e07/Word-2007-documentsopen-returns-null-in-aspnet 。
これがあなたを助けるなら、それを答えてください
PaulieがOPに関するコメントで述べたように、問題は主にWebサーバー上のライブラリが原因であると思います。これをハッキングしてWebアプリで機能させることができるかもしれませんが、これはお勧めしません。
[〜#〜] edit [〜#〜]:ああ、私は誤って投稿を読み、Excelであると想定しました。私の経験でOffice.Interopを使用するとき、ほとんどの人がそれを探します;)
DocX形式で動作するオープンライブラリがあります( ここにリンクの説明を入力 )。 残念ながら彼はページでPDFのような形式への変換はOffice.Interopライブラリなしではほとんど不可能であることを認めています( http: //cathalscorner.blogspot.com/2009/10/converting-docx-into-doc-pdf-html.html )
ここ は「有望な」代替手段ですが、YMMVです。
これを解決するには、私は両方のことをしなければなりませんでした:
ディレクトリを作成します。
C:\Windows\System32\config\systemprofile\AppData\Local\Microsoft \Windows\INetCache
C:\Windows\System32\config\systemprofile\Desktop
DCOM設定を有効にする @ gianni-bが言うように 。
別の言語のためにDCOMエントリを見つけるのに苦労している場合は、これを行うことができます。
regedit
HKEY_LOCAL_MACHINE\SOFTWARE\Classes\AppID\{00020906-0000-0000-C000-000000000046}
に移動します右クリック>新規>文字列値
RunAs
Interactive User
AppID {00020812-0000-0000-C000-000000000046}
のExcelでも同じことができます。
私は次の手順を実行しましたが、問題なく動作しました。
最も可能性が高いのは、Webサーバーに別のWord dll、おそらく古いDLLがあることです。特定のdllを参照してWebサーバーにコピーすることをお勧めします。これにより、コードをテストしたときと同じWord dllを使用していて、それが機能することを確認できます。相互運用機能を使用するときに問題が発生する可能性がありますが、Wordの相互運用機能が、Wordファイルを最も正しく変換できる唯一の機能です。