C# AD認証パソコンでエクセルを遅延バインディングするとフォーム表示が極端に遅くなる

MAKOTO SHIMIZU 0 評価のポイント
2024-11-28T05:21:35.2433333+00:00

使用ツール

  • Visual Studio 2019
  • C#
  • .Net Framework4.6 (フォーム表示プロジェクト)
  • .Net Framework4.5 (エクセル操作プロジェクト)

不具合概要

 AD認証されたパソコンでエクセルを遅延バインディングで開いた後、

 フォーム画面を開くとまっさらなフォームが表示されて、

 そこにコントロールがひとつずつポツ、ポツ、と現れる。

 すべて表示されるのに2,3分かかる。

不具合発生手順

 パソコンにAD認証を設定

 →ソフトを開く

 →ソフト上でエクセルを開く。Disposeも実行される

 →フォームを表示させると、描写の完了に時間がかかる!

描写が遅いフォーム描写が遅いフォーム

 はじめはまっさらな状態で表示されます。

 そこからコントロールがポツポツと現れます。

C#エクセル遅延バインディングのコード

dynamic xlApp; // グローバル関数
dynamic xlBook; // グローバル関数

public void Open(string xlFilePath, bool saveFlgSet = true)
{
	xlApp = Activator.CreateInstance(Type.GetTypeFromProgID("Excel.Application"));
	xlBook = xlApp.Workbooks.Open(xlFilePath);
	xlApp.DisplayAlerts = false;
	xlApp.Calculation = -4135; // manual
}

public void Dispose()
{
	ReleaseComObject(xlSheet);
	xlBook.close();
	xlBook = null;
	ReleaseComObject(xlBook); //メモリ解放
	xlBook = null;
	xlApp.Quit();
	ReleaseComObject(xlApp);
	xlApp = null;
}

AD認証の設定手順

1.優先DNSをドメインコントローラー(DC)のIPアドレスに変更

2.所属グループをワーキンググループからドメインに変更

試したこと

 以下を試すも効果なし

 ・エクセルファイルの拡張子変更(.xls, .xlsx)

 ・エクセルファイルをローカル内にコピーして開く

 ・DisposeにGC.Collect();を配置

ご回答お待ちしております。

ビジネス向け Windows | IT プロフェッショナル用 Windows クライアント | ユーザー エクスペリエンス | その他
開発者テクノロジ | Visual Studio | その他
開発者テクノロジ | C#
{count} 件の投票

お客様の回答

回答は、質問作成者が [承諾された回答] としてマークできます。これは、ユーザーが回答が作成者の問題を解決したことを知るのに役立ちます。