[INFO] サービスでは WinInet の使用はサポートされない

文書翻訳 文書翻訳
文書番号: 238425 - 対象製品
この記事は、以前は次の ID で公開されていました: JP238425
すべて展開する | すべて折りたたむ

概要

Microsoft Win32 インターネット関数 (WinInet.dll からエクスポートされます) は、サービスや Internet Information Server (IIS) アプリケーション (これもサービスです) から実行する場合にはサポートされません。この資料では、サービスや Internet Information Server アプリケーションでの WinInet.dll の使用について説明します。

詳細

IIS はサービスであるため、ISAPI 拡張や COM DLL (Active Server Pages (ASP) で使用される ActiveX DLL) の中で WinInet を実行する場合は、サービスで WinInet を実行する場合と同様の問題が発生します。また、IIS アプリケーションで WinInet を実行する場合に固有の問題もあります。

WinInet では、SSL、プロキシ、およびその他の情報が格納されているレジストリの設定を使用するため、サービスで WinInet を実行すると問題が発生します。サービスでは HKEY_CURRENT_USER レジストリ ハイブが読み込まれないため、これらの情報は利用できません。

警告 : マイクロソフトでは、システム サービスのコンテキスト内での WinInet API の使用をサポートしていません。

Internet Explorer 5.0 がインストールされている環境で、SSL を使用するサービスから WinInet API が実行されると、アクセス違反が報告されます。

サーバー環境で WinInet を使用する場合に固有の制限を理解するには、WinInet の歴史を理解する必要があります。WinInet は、Internet Explorer での使用を目的として開発されました。実際に、新しいバージョンの WinInet を使用するには、Internet Explorer の最小インストール環境が必要です (この資料の「関連情報」を参照してください)。また WinInet は、インターネット (またはイントラネット) 上にあるリソースにアクセスする他のクライアント アプリケーションで使用される API も提供しています。DLL の適切な使用方法を理解するには、WinInet の開発およびテストが行われた環境を認識することが重要です。WinInet は、クライアント環境での使用を目的として開発されています。ISAPI DLL 内で実行される場合でもクライアントとして機能しますが、この場合はサーバー環境で実行されていることになります。

クライアント環境 : ユーザーが Internet Explorer を実行する場合
  • 要求の数が比較的少ない。
  • 要求の発行が、比較的連続している。
  • ホスト アプリケーションの実行期間 (ブラウザ セッションの持続期間) は短い。
サーバー環境 : Web サーバー (www.microsoft.com など) の場合
  • 1 秒あたりの要求の数が多い。
  • 複数のスレッドが同時に要求を発行する。
  • 数週間あるいは数か月間にわたって実行する必要がある。
推奨される解決策は、サービス環境で動作するように設計されている WinHttp を使用することです。これはサーバー側の HTTP スタックであるため、クライアント側の HTTP スタックに対して RFC 2616 で規定されている、接続の数を 2 つまでとする制限に拘束されることはありません。この API セットは、使用方法が WinInet に非常に似ており、WinInet に慣れているユーザーは、簡単に使用することができます。

もう 1 つの解決方法は、ソケットを直接使用することです。Platform SDK には、SSL 上で WinSock を使用する方法を示すサンプルが含まれています。サンプルは、SDK の \Microsoft Platform SDK\Samples\Winbase\Security\Ssl フォルダにあります。

サーバー環境で WinInet を使用する際に注意すべきもう 1 つの問題は、Internet Explorer によって、接続が 2 つまでに制限されることです。この件については、以下の「サポート技術情報」 (Microsoft Knowledge Base) の資料を参照してください。
183110 [INFO] サーバーあたりの接続数を制限する WinInet
サービスやサーバー環境で WinInet を使用することは可能ですが、マイクロソフトでは推奨しておらず、またサポートしていません。WinInet はこのような構成ではテストされておらず、実際に問題が発生します。

関連情報

関連情報を参照するには、以下の「サポート技術情報」 (Microsoft Knowledge Base) をクリックしてください。
185375 [HOWTO] Internet Explorer の単一の EXE インストールを作成する方法

プロパティ

文書番号: 238425 - 最終更新日: 2007年10月26日 - リビジョン: 4.1
この資料は以下の製品について記述したものです。
  • Microsoft Internet Explorer 4.01 Service Pack 2
  • Microsoft Internet Explorer 5.0
  • Microsoft Internet Explorer 5.5
  • Microsoft Windows Internet Services (WinInet)
キーワード:?
kbproductlink kbhttp kbinfo KB238425
"Microsoft Knowledge Baseに含まれている情報は、いかなる保証もない現状ベースで提供されるものです。Microsoft Corporation及びその関連会社は、市場性および特定の目的への適合性を含めて、明示的にも黙示的にも、一切の保証をいたしません。さらに、Microsoft Corporation及びその関連会社は、本文書に含まれている情報の使用及び使用結果につき、正確性、真実性等、いかなる表明・保証も行ないません。Microsoft Corporation、その関連会社及びこれらの権限ある代理人による口頭または書面による一切の情報提供またはアドバイスは、保証を意味するものではなく、かつ上記免責条項の範囲を狭めるものではありません。Microsoft Corporation、その関連会社 及びこれらの者の供給者は、直接的、間接的、偶発的、結果的損害、逸失利益、懲罰的損害、または特別損害を含む全ての損害に対して、状況のいかんを問わず一切責任を負いません。(Microsoft Corporation、その関連会社 またはこれらの者の供給者がかかる損害の発生可能性を了知している場合を含みます。) 結果的損害または偶発的損害に対する責任の免除または制限を認めていない地域においては、上記制限が適用されない場合があります。なお、本文書においては、文書の体裁上の都合により製品名の表記において商標登録表示、その他の商標表示を省略している場合がありますので、予めご了解ください。"
サポート期間が終了した「サポート技術情報」資料に関する免責事項
この資料は、マイクロソフトでサポートされていない製品について記述したものです。そのため、この資料は現状ベースで提供されており、今後更新されることはありません。

フィードバック

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com