Asp.net アプリケーションで、(サーバーに保存されている) Microsoft Word テンプレートを開き、ドキュメント内の特定のフィールドを編集して、ファイルをユーザーのデスクトップにダウンロードするプロセスを作成しようとしています。これはローカル サーバーでは問題なく動作しますが、運用サーバーにプッシュすると失敗します (エラーや警告は発生しません)。ここに私が持っているコードがあります:
location = mappedPath & ConfigurationManager.AppSettings("defaultTemplate")
Dim objWordApp As New Microsoft.Office.Interop.Word.Application
objWordApp.Visible = False
Dim objDoc As Word.Document = objWordApp.Documents.Open(location)
objDoc.Activate() 
objDoc.Content.Find.Execute(FindText:="[SomeField]", ReplaceWith:=myField,    Replace:=Word.WdReplace.wdReplaceAll)
objDoc.Content.Find.Execute(FindText:="[someId]", ReplaceWith:=myId,    Replace:=Word.WdReplace.wdReplaceAll)
outputLocation = mappedPath & "Temp/Posting_" & Now.ToString("MMddyyyy_hhmmss") & ".docx"
objDoc.SaveAs(outputLocation)
objDoc.Close(Word.wdSaveOptions.wdDoNotSaveChanges)
objDoc = Nothing
objWordApp.Quit(Word.wdSaveOptions.wdDoNotSaveChanges)
objWordApp = Nothing 
次に、コードは次のように、outputlocation を response.Write バッファーに送信します。
  Dim fi As FileInfo = New FileInfo(outputLocation)
  If fi.Exists Then
     Response.Clear()
     Response.ClearHeaders()
     Response.ClearContent()
     Response.Charset = "UTF-8"
     Response.ContentEncoding = System.Text.Encoding.UTF8
     Response.AddHeader("content-disposition", "attachment; filename=" + Server.UrlEncode(fi.Name))
     Response.AddHeader("Content-Type", "application/msword")
     Response.ContentType = "application/msword"
     Response.AddHeader("Content-Length", fi.Length.ToString())
     Response.WriteFile(fi.FullName)
     HttpContext.Current.ApplicationInstance.CompleteRequest()
 Else
    'log it
 End If
このコードは、サーバー上で次の行で失敗します。
Dim objDoc As Word.Document = objWordApp.Documents.Open(location)
私が読んだ限りでは、Microsoft はサーバー側での Office 製品の自動化をサポートしていません。そうは言っても、これを修正する方法はありますか、それとも代替手段はありますか? アプリを実行しているサーバーに Word がインストールされており、ユーザーが適切なアクセス許可を持っていることを確認しました。
前述したように、サーバー上のファイルを読み取り/編集し、そのファイルをユーザーにダウンロードできる必要があります。誰か提案があれば、私に知らせてください。
ありがとう