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
Windows
パーソナル コンピューター、タブレット、ノート PC、電話、モノのインターネット デバイス、自己完結型 Mixed Reality ヘッドセット、大規模なコラボレーション画面、その他のデバイスにわたって実行される Microsoft オペレーティング システムのファミリ。
92 件の質問
Visual Studio
Visual Studio
Windows、Web、モバイル デバイス用のアプリケーションを構築するための統合開発ツールの Microsoft スイートのファミリ。
103 件の質問
C#
C#
C 言語ファミリをルーツとし、コンポーネント指向プログラミングのサポートを含む、オブジェクト指向およびタイプセーフのプログラミング言語。
37 件の質問
{count} 件の投票

お客様の回答

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