ClickOnce 配置でのサーバーおよびクライアント構成の問題
更新 : 2007 年 11 月
Windows Server 2003 でインターネット インフォメーション サービス (IIS) を使用しており、Microsoft Word ファイルなど Windows で確認できない種類のファイルが配置に含まれている場合には、IIS によってこのファイルの転送が拒否されるため、配置が失敗します。
また、ASP.NET などの Web サーバーや Web アプリケーション ソフトウェアの一部では、ダウンロードできないファイルやファイルの種類が一覧で指定されています。たとえば、ASP.NET では、Web.config ファイルを一切ダウンロードできません。これらのファイルには、ユーザー名やパスワードなどの重要情報が含まれている場合があります。
これによって、マニフェスト、アセンブリなど ClickOnce の主要なファイルのダウンロードが制限されることはありませんが、ClickOnce アプリケーションの一部として含まれているデータ ファイルをダウンロードできなくなる可能性があります。ASP.NET では、このようなファイルのダウンロードを妨げるハンドラを IIS 構成マネージャから削除することによって、このエラーを解決できます。詳細については、IIS サーバーのドキュメントを参照してください。
Web サーバーによっては、.dll、.config、.mdf などの拡張子を持つファイルをブロックする場合があります。通常、Windows ベースのアプリケーションには、これらの拡張子のいずれかを持つファイルが含まれています。Web サーバー上のブロックされたファイルにアクセスする ClickOnce アプリケーションをユーザーが実行しようとすると、エラーが発生します。ClickOnce では、すべてのファイル拡張子のブロックを解除しなくても、すべてのアプリケーション ファイルが ".deploy" ファイル拡張子で発行されるように既定で設定されています。このため、管理者は次の 3 つのファイル拡張子のブロックを解除するように Web サーバーを構成するだけで済みます。
.application
.manifest
.deploy
ただし、アプリケーションで使用されているすべてのファイル拡張子のブロックを解除するように Web サーバーを構成する必要がある場合は、[発行オプション] ダイアログ ボックスの [".deploy" ファイル拡張子を使用する] をオフにします。
.NET Framework がインストールされていない IIS を使用している場合や、別の Web サーバー (Apache など) を使用している場合などには、.manifest、.application、および .deploy を設定する必要があります。
ClickOnce と Secure Sockets Layer (SSL)
ClickOnce アプリケーションは SSL 経由でも適切に動作します。ただし、Internet Explorer で SSL 証明書についてのプロンプトが表示された場合は別です。このプロンプトは、証明書に何らかの問題がある場合 (たとえば、サイト名が一致しない場合や、証明書の有効期限が切れている場合など) に表示されます。ClickOnce を SSL 接続経由で適切に動作させるためには、証明書が最新であることと、証明書のデータがサイトのデータに一致することを確認してください。
ClickOnce とプロキシ認証
ClickOnce は、Windows 統合プロキシ認証をサポートします。machine.config ディレクティブを指定する必要はありません。ClickOnce は、基本認証やダイジェスト認証などのその他の認証プロトコルはサポートしません。
詳細については、「<defaultProxy> 要素 (ネットワーク設定)」を参照してください。
ClickOnce と Web ブラウザの互換性
現在、ClickOnce のインストールは、配置マニフェストへの URL が Internet Explorer で開かれている場合にのみ起動できます。配置の URL が Microsoft Office Outlook などの別のアプリケーションから起動されているときは、Internet Explorer が既定の Web ブラウザとして設定されている場合にのみ配置が正常に起動されます。
メモ : |
---|
Mozilla Firefox もサポートされていますが、配置プロバイダが空白でなく、Firefox に対応した ClickOnce プラグインがインストールされている場合に限定されます。 |
ブラウザ スクリプトによる ClickOnce アプリケーションのアクティブ化
アクティブ スクリプトを使用して ClickOnce アプリケーションを起動するカスタム Web ページを開発した場合、一部のコンピュータでアプリケーションが起動されないことがあります。Internet Explorer には [ファイルのダウンロード時に自動的にダイアログを表示] という設定があり、これがこの動作に影響します。この設定は、この動作に影響を与える [インターネット オプション] の [セキュリティ] タブで行うことができます。これは [ファイルのダウンロード時に自動的にダイアログを表示] という設定で、[ダウンロード] カテゴリの下に表示されます。このプロパティは、イントラネット Web ページに対しては既定で [有効にする] に設定されており、インターネット Web ページに対しては既定で [無効にする] に設定されています。この設定を [無効にする] に設定すると、ClickOnce アプリケーションをプログラムでアクティブ化する試み (たとえば、その URL を document.location プロパティに割り当てるなどの試み) がすべてブロックされます。このような状況でユーザーがアプリケーションを起動するには、アプリケーションの URL に設定されたハイパーリンクをクリックするなどして、ユーザーがダウンロードを実行するしかありません。
サーバー構成に関するその他の問題
管理者のアクセス許可が必要
HTTP を使用して発行する場合は、対象のサーバーで管理者のアクセス許可を持っていることが必要です。IIS でこのアクセス許可レベルが必要となります。HTTP を使用する発行を行わない場合には、対象のパスへの書き込みアクセス許可だけが必要となります。
サーバー認証の問題
[匿名アクセス] をオフにしてリモート サーバーへの発行を行うと、次の警告が表示されます。
"The files could not be downloaded from http://<remoteserver>/<myapplication>/. The remote server returned an error: (401) Unauthorized."
メモ : |
---|
既定の資格情報と異なる資格情報の指定をサイトから要求され、セキュリティ ダイアログ ボックスで、指定した資格情報を今後のセッション用に保存するかどうかを確認するメッセージが表示されたときに [OK] をクリックした場合には、NTLM (NT チャレンジ応答) 認証を機能させることができます。ただし、この回避策は基本認証では使うことができません。 |
サードパーティの Web サーバーの使用
IIS 以外の Web サーバーから ClickOnce アプリケーションを配置する場合、配置マニフェスト、アプリケーション マニフェストなどの主要な ClickOnce ファイルに対してサーバーが不正なコンテンツ タイプを返すと問題が発生する場合があります。この問題を解決するには、新しいコンテンツ タイプをサーバーに追加する方法に関する Web サーバーのヘルプ ドキュメントを参照し、次の表に記載されているすべてのファイル名の拡張子が正しく割り当てられていることを確認します。
ファイル名の拡張子 |
コンテンツ タイプ |
---|---|
.application |
application/x-ms-application |
.manifest |
application/x-ms-manifest |
.deploy |
application/octet-stream |
アプリケーションのインストールをサポートしない FTP プロトコル
ClickOnce は、HTTP 1.1 のあらゆる Web サーバーとファイル サーバーからのアプリケーションのインストールをサポートしています。ファイル転送プロトコル (FTP: File Transfer Protocol) はアプリケーションのインストールをサポートしていません。FTP は、アプリケーションの発行にのみ使用できます。これらの相違点の概要を次の表に示します。
URL タイプ |
説明 |
---|---|
ftp:// |
このプロトコルを使用すると、ClickOnce アプリケーションを発行できます。 |
http:// |
このプロトコルを使用すると、ClickOnce アプリケーションをインストールできます。 |
https:// |
このプロトコルを使用すると、ClickOnce アプリケーションをインストールできます。 |
file:// |
このプロトコルを使用すると、ClickOnce アプリケーションをインストールできます。 |
Windows XP SP2: Windows ファイアウォール
Windows XP SP2 の既定では、Windows ファイアウォールが有効になっています。Windows XP がインストールされているコンピュータでアプリケーションを開発している場合でも、IIS を実行中のローカル サーバーから ClickOnce アプリケーションを発行および実行できます。しかし、IIS を実行中のそのサーバーに他のコンピュータからアクセスする場合は、Windows ファイアウォールを開かないとアクセスできません。Windows ファイアウォールを管理する手順については、Windows ヘルプを参照してください。
Windows Server 2003 : FrontPage Server Extensions の有効化
HTTP を使用する Windows Web サーバーにアプリケーションを発行するには、Microsoft が提供する FrontPage 2002 Server Extensions が必要です。
既定では、Windows Server 2003 には FrontPage 2002 Server Extensions はインストールされていません。Visual Studio を使用して、HTTP を使用する Windows Server 2003 の Web サーバーに対して FrontPage 2002 Server Extensions で発行するには、まず、FrontPage 2002 Server Extensions をインストールする必要があります。インストールは、Windows Server 2003 の "サーバーの役割管理" ツールを使用して実行できます。
Windows Server 2003: ロック ダウンされているコンテンツ タイプ
Windows Server 2003 の IIS では、一部の既知のコンテンツ タイプ (.htm、.html、.txt など) を除くすべてのファイルの種類がロック ダウンされています。このサーバーを使用して ClickOnce アプリケーションを配置できるようにするには、種類が .application、.manifest のファイル、およびアプリケーションで使用しているその他のカスタム ファイルの種類のファイルをダウンロードできるように IIS の設定を変更する必要があります。
IIS サーバーを使用して配置する場合は、inetmgr.exe を実行し、既定の Web ページに新しいファイルの種類を追加します。
.application 拡張子と .manifest 拡張子に対しては、MIME 型を "application/x-ms-application" に設定する必要があります。その他のファイルの種類に対しては、MIME 型を "application/octet-stream" に設定する必要があります。
拡張子 "*" を新たに追加し、MIME 型を "application/octet-stream" に設定した場合、ブロックされていないファイルの種類のファイルをダウンロードできるようになります (ただし、.aspx や .asmx などのブロックされているファイルの種類はダウンロードできません)。
Windows Server 2003 で MIME 型を構成する具体的な手順については、Microsoft サポート技術情報の文書 KB326965「IIS 6.0 Does Not Serve Unknown MIME Types」(https://support.microsoft.com/default.aspx?scid=kb%3bja-jp%3b326965) を参照してください。
コンテンツ タイプの割り当て
HTTP を使用して発行するときは、.application ファイルのコンテンツ タイプ (MIME 型とも呼ばれます) が "application/x-ms-application" に設定されている必要があります。サーバーに .NET Framework 2.0 がインストールされている場合、この設定は自動的に行われます。インストールされていない場合は、ClickOnce アプリケーションの vroot (またはサーバー全体) に対して、MIME 型の関連付けを作成する必要があります。
IIS サーバーを使用して配置する場合は、inetmgr.exe を実行し、.application 拡張子に対して新しいコンテンツ タイプ "application/x-ms-application" を追加します。
HTTP 圧縮に関する問題
ClickOnce では、HTTP 圧縮を使用した状態でファイルをダウンロードできます。HTTP 圧縮は、クライアントに送信するデータ ストリームを GZIP アルゴリズムで圧縮する Web サーバー テクノロジです。クライアント (この場合は ClickOnce) では、ストリームを圧縮解除してからファイルを読み込みます。
IIS を使用している場合には、HTTP 圧縮を簡単に有効にできます。ただし、HTTP 圧縮は、特定のファイルの種類 (HTML ファイルとテキスト ファイル) のみに対して有効になります。アセンブリ (.dll)、XML (.xml)、配置マニフェスト (.application)、およびアプリケーション マニフェスト (.manifest) の圧縮を有効にするには、これらのファイルの種類を IIS で圧縮対象となるファイルの種類のリストに追加する必要があります。配置に対してファイルの種類を追加するまでは、テキスト ファイルと HTML ファイルのみが圧縮されます。
IIS での詳細な手順については、Microsoft サポート技術情報の記事「HTTP 圧縮対象のドキュメントの種類を追加する方法」(サポート技術情報検索ページで "234497" を検索してください) を参照してください。