既知の問題
このトピックでは、今回リリースされた Microsoft® .NET Alerts Software Development Kit (SDK) で確認されている問題について情報を提供します。
.NET Alerts SDK のインストール
Microsoft .NET Alerts クライアント ライブラリのオブジェクトを Web ページから参照すると、.NET Alerts クライアント ライブラリのダイナミックリンク ライブラリ (MSNOTIFY.DLL) が Microsoft インターネット インフォメーション サービス (IIS) によってロックされたままになります。このため、別のバージョンの .NET Alerts SDK をインストールしても、クライアント ライブラリの DLL が更新されません。
解決策 : .NET Alerts SDK を再インストールする前に IIS を終了してください。インストールの終了後に、IIS を再起動してください。
.NET Alerts クライアント ライブラリ
非同期モードで使用していて、送信キューに通知が 1 つ以上残っている NotificationTransport オブジェクトを解放しようとすると、解放に失敗するか、またはメモリ リークが発生します。
この現象は、送信キューに通知が 1 つ以上残っている NotificationTransport オブジェクトを解放し、新しい NotificationTransport オブジェクトを作成して非同期モードで通知を送信しようとすると発生します。また、送信キューに通知が 1 つ以上残っている NotificationTransport オブジェクトを使用するプログラムが存在する場合も発生することがあります。
解決策 : プログラムを終了する前、または新しい NotificationTransport オブジェクトを作成して使用する前に、DrainNotifications メソッドを使用して保留中の要求がない状態にしてください。
同期送信と非同期送信の両方に使用した NotificationTransport オブジェクトを解放しようとすると、エラーが発生します。
解決策 : 同期送信と非同期送信を交互に使用することは、できる限り避けてください。2 つのモードを使用しなければならない場合は、モードを切り替えるときに NotificationTransport オブジェクトをいったん解放してから作成し直してください。また、DrainNotifications メソッドを使用して、解放する NotificationTransport オブジェクトに対する保留中の送信要求がないことを確認してください。
Active Server Pages (ASP) ページから通知を送信しようとすると、エラー コード 0x80004005 で処理に失敗します。
解決策 : ASP ページからの通知の送信はサポートされていません。既定では、ASP コードはインターネット インフォメーション サービス (IIS) の匿名アクセス用ユーザー アカウント (ローカルの Guests グループのメンバ) によって実行されます。.NET Alerts クライアント ライブラリはアプリケーション イベント ログにエントリを書き込みますが、Guests グループのメンバにはアプリケーション イベント ログへの書き込みが許可されないため、エラーが発生します。
.NET Alerts Developer Edition
BodyIcon プロパティに指定した URL が正しくない場合、Messenger ポップアップ エミュレータは複数の通知を同時に表示しません。
解決策 : BodyIcon に正しい URL を指定してください。
通知を連続して送信すると、Messenger ポップアップ エミュレータが一部の通知についてポップアップ メッセージを表示しないことがあります。Messenger ポップアップ エミュレータは複数の通知ポップアップ メッセージを画面の右下端から上端に向かって順に表示します。メッセージの表示位置が画面の上端に達すると、デスクトップに表示されているポップアップ メッセージがすべて消えるまで、Messenger ポップアップ エミュレータは受信した通知をすべて破棄します。ポップアップ メッセージがすべて消えると、Messenger ポップアップ エミュレータは新たに受信した通知のポップアップ メッセージを再び画面の右下端から表示します。
解決策 : 一度に大量の通知を Messenger ポップアップ エミュレータに送信しないでください。
日本語文字コードのような、2 バイト文字コードが含まれる通知の送信に Send Alert 関数や Pop Toast 関数を使用すると、Messenger ポップアップ エミュレータはテキストを正しく表示しません。これらの関数では ANSI 文字しかサポートされていません。
解決策 : .NET Alerts クライアント ライブラリの SendNotification メソッドを使用して通知を作成し、.NET Alerts ルーティング エンジン エミュレータに通知を送信します。Messenger ポップアップ エミュレータは、.NET Alerts ルーティング エンジン エミュレータから受信した通知に含まれる 2 バイト文字は正しく表示します。また、通知の表示に使用する言語の言語サポートがインストールされていることを確認してください。
.NET Alerts クライアント ライブラリを使用して .NET Alerts ルーティング エンジン エミュレータに通知を送信する場合、初めて SendNotification メソッドを呼び出すときは、Messenger ポップアップ エミュレータによってポップアップ メッセージが表示されているのに、処理の失敗を示す状態コードが返される場合があります。
解決策 : 通知を送信したときにポップアップ メッセージが表示される場合、作成したコードは正常に機能しています。失敗を示す状態コードは無視してください。
.NET Alerts Developer Edition をアンインストールすると、IIS が使用する ISAPI フィルタの一覧からダイナミックリンク ライブラリの authfilt.dll が削除されません。アンインストール後、.NET Alerts Developer Edition を前のインストール時と異なるディレクトリに再インストールすると、前のインストール ディレクトリを指し示す ISAPI フィルタのエントリが残っているため、.NET Alerts Developer Edition が正常に機能しません。
解決策 : .NET Alerts Developer Edition を再インストールする前に、ISAPI フィルタの一覧から authfilt.dll のエントリを削除する必要があります。IIS の管理コンソールを開き、[Web サイト] フォルダを右クリックします。ショートカット メニューの [プロパティ] を選択し、[プロパティ] ダイアログ ボックスの [ISAPI フィルタ] タブをクリックします。フィルタの一覧にある Auth Filter というフィルタを強調表示して、[削除] をクリックします。
IIS 6.0 を使用する場合、"スレッド識別子が無効です。" というエラーにより、.NET Alerts Developer Edition 構成ページ (https://localhost/msalertssdkserver/msalertssdkserver.dll?status) を表示できません。
解決策 : .NET Alerts Developer Edition を使用する場合、IIS 6.0 は IIS 5.0 分離モードで動作している必要があります。また、インターネット インフォメーション サービス マネージャで Web サービス拡張の Active Server Pages や ISAPI 拡張を許可する必要があります。IIS 6.0 を IIS 5.0 分離モードで動作するように設定するには、次の手順に従います。
1. IIS マネージャで、ローカル コンピュータを展開し、[Web サイト] を右クリックして [プロパティ] をクリックします。
2. [サービス] タブをクリックし、[IIS 5.0 プロセス分離モードで WWW サービスを実行する] チェック ボックスをオンにし、[OK] をクリックします。
3. WWW サービスを開始する場合は、[はい] をクリックします。
COM Interop での .NET Alerts クライアント ライブラリの使用
NotificationTransport オブジェクトを参照するページが更新されるたびに、Microsoft ASP.NET サーバーがこのオブジェクトを再作成しようとします。また、ページが初めて読み込まれた後で COM (Component Object Model) の致命的なエラーが発生します。
解決策 : ASP.NET ページで NotificationTransport オブジェクトを作成する場合、C# ではこのオブジェクトを static として宣言し、Microsoft Visual Basic® .NET では Application() メソッドを使用してこのオブジェクトが既に存在するかどうかを判定してください。詳細については、「ASP.NET で .NET Alerts クライアント ライブラリを使用する」を参照してください。
.NET Alerts サービス
通知をデスクトップに配信する場合、長いメッセージは Microsoft Windows® Messenger や MSN® Messenger によって表示されるポップアップ メッセージには収まりません。ポップアップ メッセージに収まるメッセージの長さの制限は、文字幅や表示の際のテキストの折り返し方法によって異なります。次の図は、長すぎてポップアップ メッセージのウィンドウに入りきらないメッセージの例です。この通知で送信されたメッセージ テキストは、"This message is too long." を 6 回繰り返した文字列です。
解決策 : 最も長いメッセージがポップアップ メッセージのウィンドウにすべて入ることを確認してください。
サブスクリプション ミラーリング操作で Secure Sockets Layer (SSL) の技術を使用するように構成したサイトで、コブランディングされたページで混合セキュリティ内容の警告が生成されるか、または一部のブラウザでコブランディングが表示されません。
解決策 : コブランディング テンプレートを SSL 対応 URL (https:// で始まる URL) から提供します。コブランディング テンプレートを SSL 対応 URL から利用できることを確認し、Microsoft .NET Services Manager を使用してサイトを登録したときにコブランディング URL としてその SSL 対応 URL を指定したことを確認してください。
Messenger
MSN Messenger 5.0 を使用しているときに、MessengerService\Server を PREP サインイン サーバーを指定するように変更した後も、Microsoft .NET Messenger Service の PREP 環境にサインインできません。
解決策 : MSN Messenger Version 5.0 以降では、レジストリの変更による任意のサインイン サーバーへのリダイレクトはサポートされていません。Messenger PREP 環境にサインインする必要がある場合は、Windows Messenger または 5.0 よりも前のバージョンの MSN Messenger を使用してください。
Mac OS 用の MSN Messenger に配信される通知で優先順位を指定しなかった場合、Messenger が異常終了します。
解決策 : 送信するすべての通知で優先順位を指定するようにしてください。.NET Alerts クライアント ライブラリを使用して通知を生成している場合は、Priority プロパティを 1 に設定します。XML Notifications Protocol を使用して通知を生成している場合は、MSG 要素の pri 属性を 1 に設定してください。Mac OS 用の MSN Messenger で問題が発生しないようにする以外に、優先順位が通知に影響を与えることはありません。
関連項目
NotificationTransportClass.SendNotification メソッド (C#) | NotificationTransportClass.SendNotification メソッド (Visual Basic .NET) | INotificationTransport::SendNotification メソッド (C++) | NotificationTransport.SendNotification メソッド (Visual Basic) | NotificationTransportClass.DrainNotifications メソッド (C#) | NotificationTransportClass.DrainNotifications メソッド (Visual Basic .NET) | INotificationTransport::DrainNotifications メソッド (C++)
|