C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[6]: VB.NETで作成したアプリの起動


(過去ログ 101 を表示中)

[トピック内 7 記事 (1 - 7 表示)]  << 0 >>

■60400 / inTopicNo.1)  VB.NETで作成したアプリの起動
  
□投稿者/ 篤梁 (1回)-(2011/07/01(Fri) 16:27:43)

分類:[VB.NET/VB2005 以降] 

VB2008で社内アプリを作成しています。
対象FrameWorkは2.0です。


社内では、インターネットに接続可能なPCを限定しています。
部課長だけがインターネットを使える、という感じです。

インターネットに接続できるPCでは、社内アプリの起動速度に問題ありません。
しかし、接続できないPCでは、画面の初期表示に異様に時間がかかっています。
起動後の動作には問題ありませんが、待ちきれないほどに時間がかかります(20秒以上)。
同じPCでも、インターネット接続できる状態にすると早く起動するし、接続不可にすると遅くなります。

社内アプリは、社内LAN内で動作完結します。
プログラムコードでは、インターネット上の何かを参照するような明示的な処理はしていません。
フォームのリソースファイル(.resx)には「xmlns:xsd="http://www.w3.org/2001/XMLSchema"」のような記述があります。


.NETアプリは、1回目の起動が遅いというのはよく聞きます。
しかし、インターネットに接続できないPCでは遅いという問題は検索してもHitしませんでした。
何か対処方法はないでしょうか?

よろしくお願いします。

引用返信 編集キー/
■60401 / inTopicNo.2)  Re[1]: VB.NETで作成したアプリの起動
□投稿者/ shu (820回)-(2011/07/01(Fri) 16:49:14)
No60400 (篤梁 さん) に返信

LAN内でもネットワークアクセスを行っているのでしょうか?
もし行っているのならネットワーク経路情報に問題はないか確認してみるとよいかと思います。
引用返信 編集キー/
■60402 / inTopicNo.3)  Re[2]: VB.NETで作成したアプリの起動
□投稿者/ todo (154回)-(2011/07/01(Fri) 17:01:21)
Process Monitorでファイルアクセスやネットワークアクセスを監視すれば、アプリが起動時に何をしているか把握できるかも。

http://technet.microsoft.com/ja-jp/sysinternals/bb896645?ppud=4

引用返信 編集キー/
■60403 / inTopicNo.4)  Re[3]: VB.NETで作成したアプリの起動
□投稿者/ 篤梁 (2回)-(2011/07/01(Fri) 18:48:20)
shuさん、todoさん、回答ありがとうございます。

経路情報には問題ないと思うのです。
画面の表示までが非常に遅く、表示後のデータ処理等にはまったく問題ありません。

Process Monitorを実行してみたのですが、作成したアプリが「crl.verisign.net」へアクセスしようとしている形跡があります。
そこにトータル10秒以上かかっているようです。
この挙動が一体何なのか、使用している外部ツールなども調べてみます。

引用返信 編集キー/
■60406 / inTopicNo.5)  Re[4]: VB.NETで作成したアプリの起動
□投稿者/ shu (821回)-(2011/07/01(Fri) 22:23:43)
No60403 (篤梁 さん) に返信

> Process Monitorを実行してみたのですが、作成したアプリが「crl.verisign.net」へアクセスしようとしている形跡があります。
verisignっていうんだからなんか署名とかしてあってその更新とかでアクセスにいっているんじゃないですか?
引用返信 編集キー/
■60407 / inTopicNo.6)  Re[5]: VB.NETで作成したアプリの起動
□投稿者/ Azulean (777回)-(2011/07/02(Sat) 00:23:18)
ドメイン名にでている CRL という言葉を調べるとわかりますが、発行元証明書の失効を確認するためにインターネットに接続しようとしていますが、タイムアウトするまで待たされているのでしょう。

本来は失効を確認できるようにすることが理想だと思いますが、失効した証明書の悪用というリスクを踏まえても、このプロセスを省略させるには、インターネットオプションの変更か、構成ファイルでの指定が必要です。

(1)構成ファイル
http://support.microsoft.com/kb/936707/ja を参考に generatePublisherEvidence に false を指定する。
対象のアプリケーションの署名に使われていた証明書が失効していても、それを確認できなくなります。

(2)インターネットオプションの変更
詳細設定タブから「発行元証明書の取り消しを確認する」といった設定を OFF にします。
すべてのアプリケーションで署名に使われている証明書が失効していても、それを確認できなくなります。


セキュリティリスクを考慮しても、起動速度を求めるのであれば、メリット・デメリットを考慮して、こういった対策をとるのもありでしょう。
引用返信 編集キー/
■60408 / inTopicNo.7)  Re[6]: VB.NETで作成したアプリの起動
□投稿者/ 篤梁 (3回)-(2011/07/02(Sat) 12:24:55)
shuさん、Azuleanさん、回答ありがとうございます。


社内アプリ自体は私が作成していますが、署名の発行などはしていません。
何に証明書が使用されているのかは不明ですが、おそらく開発に利用しているツールの中に存在するのだと思います。

Azuleanさんのアドバイスから、インターネットオプションの変更で対応することにしました。
「発行元証明書の取り消しを確認する」をオフにすることで回避できました。
権限上、インターネットに接続させないパソコンなので、これで十分です。


皆さんありがとうございました。

解決済み
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -