The project of U-WA-
http://uwa.potetihouse.com/
トップページ > 過去ログ > 記事閲覧
アイコン TKMP.DLLのMailDatasプロパティで例外
日時: 2007/10/03 13:01
名前: たけうち

はじめまして。
たけうちと申します。

.NET用メール送受信クラスライブラリ (TKMP.DLL)を使用させて頂いているのですが、
まれにMailDatasプロパティで例外が発生しますので報告させて頂きます。

接続→MailDatas参照→切断を連続して何度も繰り返すと発生する頻度が上がります。

下記が例外の内容です。

System.NullReferenceException: オブジェクト参照がオブジェクト インスタンスに設定されていません。
場所 TKMP.Net.PopClient.get_MailDatas()

開発環境:VB.NET 2005
OS:Windows XP Pro SP2

大変便利なライブラリを公開して頂き、感謝致します。

Page: 1 |

ファイル Re: TKMP.DLLのMailDatasプロパティで例外 ( No.1 )
日時: 2007/10/03 22:27
名前: Toki◆pRU.c9X.EOI

サーバーへのログオンに失敗している可能性があります。

例外が発生するときにConnectメソッドの戻り値がFalseになっていないか確認してみてください
ファイル Re: TKMP.DLLのMailDatasプロパティで例外 ( No.2 )
日時: 2007/10/06 07:53
名前: たけうち

返信ありがとうございます。

Connectメソッドはtrueを返しています。
ファイル Re: TKMP.DLLのMailDatasプロパティで例外 ( No.3 )
日時: 2007/10/09 00:58
名前: Toki◆pRU.c9X.EOI

Connectメソッドでは、戻り値の設定の直前でMailDatasプロパティの元になるコレクションが設定されます。
このため戻り値がTrueでMailDatasがSystem.NullReferenceExceptionの例外を発生する事はないと思います。
発生場所の再確認をお願いいたします。
またMailDatasの内部コレクションはPopClient内でNullをセットすることは無く、
初期状態でNullになっている以外は、再接続時に再設定されるだけです。
接続、切断を同一のインスタンスで行なう場合はNullになることはありません。
接続時にログオンに失敗した場合も、前回の値が保持されています。

以下の点の確認をお願いします
・MailDatasメソッドの戻り値をMailDataの配列に格納するだけでも発生しますか?
・「接続→MailDatas参照→切断を連続して」はループで連続して行なっていますか?
・再接続は同一インスタンスで行なっていますか?
ファイル Re: TKMP.DLLのMailDatasプロパティで例外 ( No.4 )
日時: 2007/10/09 09:27
名前: たけうち

原因が分かりました。

Connect メソッドが失敗しているにもかかわらず、
Connected プロパティが true になっています。

私のプログラムが接続済みと判断して MailDatas プロパティを参照する為に
エラーが発生していました。
ファイル Re: TKMP.DLLのMailDatasプロパティで例外 ( No.5 )
日時: 2007/10/10 01:10
名前: Toki◆pRU.c9X.EOI

ご報告ありがとうございます

ご指摘のとおりConnect メソッドでの処理が失敗しFalseを返す場合に
条件によってはConnected プロパティがTrueになってしまう問題がわかりました。

早急に修正させていただきます。

Page: 1 |