分類:[ASP.NET (C#)]
2008/05/28(Wed) 11:58:11 編集(投稿者)
お世話になっております。
ASP.NETからWordの出力を行っているのですが、
2回目以降に投稿ボタンをクリックすると
「COMException
このファイルは読み取り専用です。」
というエラーが発生します。
タスクマネージャからプロセスを参照したところ、WINWORD.EXEが終了されていませんでした。
しかしこれは100%発生するわけではなく、なぜ場合によってWINWORD.EXEが終了されないのかが解りません。
以下のコードが投稿ボタンとなります。
不足があればご指摘下さい。
-----
protected void Button1_Click(object sender, EventArgs e)
{
#region ワードファイルの定義を行う
//ファイル名
object fileName = "C://test.doc";
//読み取り専用
object readOnly = false;
//活性
object isVisible = true;
//MissingValue
object missing = System.Reflection.Missing.Value;
//ワードのインスタンスを作成
ApplicationClass oWordApp = new ApplicationClass();
//ドキュメントのインスタンスを作成
Document oWordDoc = oWordApp.Documents.Open(ref fileName, ref missing, ref readOnly, ref missing,
ref missing, ref missing, ref missing, ref missing, ref missing,
ref missing, ref missing, ref missing, ref missing, ref missing,
ref missing, ref missing);
#endregion
oWordApp.Selection.TypeText(txtA.Text);
oWordApp.Selection.TypeParagraph();
oWordApp.Selection.TypeParagraph();
oWordApp.Selection.TypeText(TxtB.Text);
oWordDoc.Save();
System.Runtime.InteropServices.Marshal.ReleaseComObject(oWordDoc);
System.Runtime.InteropServices.Marshal.ReleaseComObject(oWordApp);
}
------
なお、環境は
Windows XP
VisualStudio 2005 C#
です