- - PR -
[ASP.NET]EXCELが終了しない
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2003-01-21 14:16
重ね重ね申し訳ありません。
新しいプロジェクトを作成して、実行してみましたが、やはり、EXCELが落ちません。 しばらくEXCELがCPUを食ってる状況も変わりません。 ちなみに環境は WIndowsXP PRO OFFICE2000 + SP3 .NET FW + SP2 です。 新しいプロジェクトでソースに見えていない部分で変更した箇所は Web.Configに <identity impersonate="true" /> 参照設定にExcel9.0を追加しました。 Public Class WebForm1 Inherits System.Web.UI.Page #Region " Web フォーム デザイナで生成されたコード " 'この呼び出しは Web フォーム デザイナで必要です。 <System.Diagnostics.DebuggerStepThrough()> Private Sub InitializeComponent() End Sub Private Sub Page_Init(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Init ' CODEGEN: このメソッド呼び出しは Web フォーム デザイナで必要です。 ' コード エディタを使って変更しないでください。 InitializeComponent() End Sub #End Region Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load ' ページを初期化する ユーザー コードをここに挿入します。 Dim MyTest As New TestClass() MyTest.Test("D:\Test.xls") MyTest = Nothing GC.Collect() End Sub End Class Public Class TestClass Public Function Test(ByVal FileName As String) Dim xl As New Excel.Application() xl.Workbooks.Open(FileName) xl.Application.DisplayAlerts = False xl.ActiveWorkbook.Worksheets(1).CellS(1, 1) = "テスト" xl.ActiveWorkbook.Save() xl.ActiveWorkbook.Close(False) xl.Application.DisplayAlerts = True xl.Quit() xl = Nothing End Function End Class | ||||
|
投稿日時: 2003-01-21 16:29
・反対に、いつEXCELがなくなりますか? ・また、ページを再読込すると、EXCELは増えますか? | ||||
|
投稿日時: 2003-01-21 16:56
回答致します。
>・反対に、いつEXCELがなくなりますか? たぶんPCを再起動するまでなくなりません。 プロジェクトを落としても、1時間程度待ってみても、IISを再起動しても消えま せんでした。 >・また、ページを再読込すると、EXCELは増えますか? 増えるみたいです。 | ||||
|
投稿日時: 2003-01-21 18:37
次のコードでどうでしょうか?当方ではEXCEL.EXEが消えてくれました。これで消えるようでしたら、これはCOMの参照カウントの問題ですね。
| ||||
|
投稿日時: 2003-01-21 18:40
自己解決です。
WebConfigに追加した <identity impersonate="true" /> がいけなかったみたいです。 当初、EXCELオブジェクトがNEW出来なかったので、上記の一行を追加したのですが。 EXCELオブジェクトをコンポーネントサービスもしくは、DCOMCNFGでセキュリティの 起動の許可に、ASPNETユーザーを追加すればOKでした。 お忙しい中、お時間をさいて頂きまして、ありがとうございました。 今後とも、よろしくお願い致します。 | ||||
|
投稿日時: 2005-04-06 14:12
だいぶ前のスレッドのようですが。
>当初、EXCELオブジェクトがNEW出来なかったので、上記の一行を追加したのですが。 >EXCELオブジェクトをコンポーネントサービスもしくは、DCOMCNFGでセキュリティの >起動の許可に、ASPNETユーザーを追加すればOKでした。 できれば上記作業を詳しく教えていただけませんでしょうか? コンポーネントサービスにEXCELオブジェクトの追加を やり方が不明です。どうやってやるのでしょうか。 またDCOMCNFGの方はなんとなくASPNETユーザーの追加はできました。 よろしくお願いいたします。 |