• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:ASP.NET 2.0(VB)からEXCELオブジェクトを起動・操作し)

ASP.NET 2.0(VB)からEXCELオブジェクトを起動・操作し

このQ&Aのポイント
  • ASP.NET 2.0(VB)からEXCELオブジェクトを起動・操作し、クライアントにDLさせる仕組みを実装しようとしています。DCOMコンポーネントにASP.NETユーザーを権限追加し、60秒掛かってしまいます。
  • サーバーのタスクを監視してると、EXCELプロセスの起動までは1~2秒後、ファイル作成されるのが60~70秒後です。オートメーションやActiveDirectoryに因果していると思われます。
  • また、以下のコードではリソースが解放されずにリークが発生してしまっています。解決案をご教授願います。

質問者が選んだベストアンサー

  • ベストアンサー
  • SE-TOMMY
  • ベストアンサー率77% (17/22)
回答No.1

メモリリークについてコメントいたします。 RCWの内部マーシャリングにおけるデクリメントは、 ReleaseComObjectメソッドではなく、 FinalReleaseComObjectで開放したほうが安全だと思われます。 (.NET Framework 2.0以降)

参考URL:
http://hanatyan.sakura.ne.jp/dotnet/Excel01.htm
ekko1983
質問者

お礼

ありがとうございます。 確かにReleaseComObjectでは1つ参照をデクリメントするだけですね。 RCWのことを考えながらコードを見直したところ、Rangeオブジェクトの参照のところで解放漏れしていたみたいです。 使い終わるごとにReleaseComObject。 Finallyで FinalReleaseComObject とすることでリークを修正することができました。 大変参考になりました。ありがとうございました。 サーバーレスポンスが悪かった件は、 IIS側の匿名アクセスにてAdministratorsグループのユーザーを割り当てることで解決しました。 原因は不明ですが、IUSR_xxx(Guestグループ)では時間が掛かっていたみたいです。