2012-01-19 23 views
1

asp.netページから手動スレッド経由で呼び出しているVB.Netクラスがあります。コード実行が特定の外部DLLを呼び出そうとすると、実行が停止するだけです。例外はスローされません。私はコールの直前とエラーハンドラの直後にログに書き込みます。コール直前のログエントリのみが記録されます。.Netコードの実行が停止し、例外がスローされない

これはデベロッパーマシンで正常に動作していますが、デプロイメントサーバーでは機能しません。今日働いていたデモ版を使っていました。

私は今週初めに別のサードパーティのDLLで同様のことが起こっていました。私は、サーバーにインストールされているコンポーネントとは別のビルドを持っていました。私はこの場合、それを探しましたが、私のbinフォルダとdllのインストールフォルダの両方にdevmマシン上の同じバージョンがあります。

ここで何が起こっているのか把握するにはどうすればよいですか?

+0

約7分後、最終的に「スレッドが中止されました」という例外がスローされます。これは、DLLがブロック/ロック/ループや何か他のものを意味していますか?この例外はdllまたはCLRからのものですか? –

+0

さて、問題が見つかりました。これは、DLLと私の状況に非常に固有のようです。 DLL、websitesscreenshot.dllは他のWebサイトのscreencapsを行います。これはバックグラウンドでIEを使用してページをイメージにキャプチャします。私のサーバー上でキャプチャしていたページには、ssl/non ssl(セキュア/非セキュア)コンテンツが混在していました.IEは、その効果を目に見えないダイアログをポップアップしていました。これは、スレッドが終了するまで、DLLをハングしていました。私はdllが掛かっていて、1つも送らないので、何の例外も見逃さなかった。混在したコンテンツで問題を解決できないようにIEのセキュリティ設定を変更しました。私のhttpのすべてをhttpsに変更しました。 –

答えて

0

"デモ版"とは言いますが、外部DLLについて詳しくは説明しません。これはちょうど推測です:いくつかのライセンス問題がありますか? DLLはあなたが開発サーバー上で動作しているかどうかをチェックし、正常に動作しますが、実動サーバー(IISは私が想定しています)では動作しません。この遅延は、ライセンスサーバーに接続しようとしているDLLに関連している可能性があります。

実際には、有効なライセンスがありますが、展開サーバーはインターネットに接続できません。

また、展開サーバーがcrl.microsoft.comにアクセスできることを確認します。いくつかのアドインは、いくつかの証明書を無効にするためにアクセスしようとします。それについての詳細:

http://www.eggheadcafe.com/microsoft/Windows-MSI/29381925/code-signing-performance-problems-with-certificate-revocation-chec.aspx

0

呼び出しているDLL内のいくつかのログ情報を入れてみてください。 log4netのようなフレームワークは、これを行うのに便利ですし、コードがdllにどれだけ届くかを調べることができます。

0

前に使用した方法の1つは、Fusion Log Viewerを使用してアセンブリバインディングを記録することです。

アプリケーションを実行した後、ログをチェックして、エラー/障害が発生したものを見つけることができます。

+0

それは良いツールのように見えますが、私はそれを私の胸に加える必要があります。 –

+0

これは非常に便利です。アセンブリに問題がある場合、.NETがどこをどのように探しているのかがわかります。 – CCBlackburn

関連する問題