現在オフラインです。再接続するためにインターネットの接続を待っています

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

この記事は、以前は次の 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 - 最終更新日: 10/26/2007 15:41:34 - リビジョン: 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
フィードバック