304 件の質問
C# AD認証パソコンでエクセルを遅延バインディングするとフォーム表示が極端に遅くなる
MAKOTO SHIMIZU
0
評価のポイント
使用ツール
- 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 | その他
147 件の質問
開発者テクノロジ | C#
44 件の質問
サインインして回答する