ClickOnce 配置でのサーバーおよびクライアント構成の問題

Windows Server でインターネット インフォメーション サービス (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

    ただし、[発行オプション] ダイアログ ボックス[".deploy" ファイル拡張子を使用する] オプションをオフにすることで、このオプションを無効にできます。この場合は、アプリケーションで使用されているすべてのファイル拡張子のブロックを解除するように Web サーバーを構成する必要があります。

    たとえば、.NET Framework をインストールしていない IIS を使用している場合や、別の Web サーバー (Apache など) を使用している場合は、.manifest.application.deploy を構成する必要があります。

ClickOnce と Secure Sockets Layer (SSL)

ClickOnce アプリケーションは SSL 経由で正しく機能しますが、Internet Explorer で SSL 証明書に関するプロンプトが表示される場合は例外です。 このプロンプトは、サイト名が一致しない場合や証明書の有効期限が切れている場合など、証明書に何らかの問題がある場合に表示される可能性があります。 SSL 接続上で ClickOnce を正常に機能させるには、証明書が最新であること、証明書のデータがサイトのデータと一致していることを確認してください。

ClickOnce とプロキシ認証

ClickOnce では、.NET Framework 3.5 以降の Windows 統合プロキシ認証がサポートされています。 特定の machine.config ディレクティブは必要ありません。 ClickOnce では、基本やダイジェストなど、他の認証プロトコルをサポートしていません。

.NET Framework 2.0 に修正プログラムを適用して、この機能を有効にすることもできます。 詳細については、「修正: プロキシサーバーを使用するように構成されているクライアントコンピューターに、.NET Framework 2.0 で作成した ClickOnce アプリケーションをインストールしようとすると、エラーメッセージ "プロキシ認証が必要です" が表示される」を参照してください。

詳細については、「<defaultProxy> 要素 (ネットワーク設定)」を参照してください。

ClickOnce と Web ブラウザーの互換性

現在のところ、ClickOnce のインストールは、Internet Explorer を使用して配置マニフェストへの URL が開かれた場合にのみ起動されます。 Outlook Microsoft Office などの別のアプリケーションから URL が起動された配置が正常に起動されるのは、Internet Explorer が既定の Web ブラウザーとして設定されている場合のみです。

Note

展開プロバイダーが空白でない場合や、Microsoft .NET Framework Assistant 拡張機能がインストールされている場合は、Mozilla Firefox がサポートされます。 この拡張機能は、.NET Framework 3.5 SP1 と共にパッケージ化されています。 XBAP のサポートについては、必要なときに NPWPF プラグインがアクティブにされます。

ブラウザー スクリプトを通して ClickOnce アプリケーションをアクティブにする

アクティブ スクリプティングを使用して ClickOnce アプリケーションを起動するカスタム Web ページを開発した場合は、一部のマシンでアプリケーションが起動しないことがあります。 Internet Explorer には、この動作に影響を及ぼす [ファイルのダウンロード時に自動的にダイアログを表示] という設定があります。 この動作に影響を及ぼすこの設定は、[オプション] メニューの [セキュリティ] タブにあります。 これは [ファイルのダウンロード時に自動的にダイアログを表示] という名前で、[ダウンロード] カテゴリの下に一覧表示されます。 このプロパティは、イントラネット Web ページに対しては既定で [有効] に、インターネット Web ページに対しては既定で [無効] に設定されています。 この設定が [無効] に設定されている場合は、プログラムによって (その URL を document.location プロパティに割り当てるなどして) ClickOnce アプリケーションをアクティブにしようとするとブロックされます。 こうした状況でユーザーがアプリケーションを起動できるのは、そのアプリケーションの URL に設定されているハイパーリンクをクリックするなど、ユーザーが開始するダウンロードを通してのみです。

サーバー構成に関するその他の問題

管理者のアクセス許可が必要

HTTP で発行しようとしている場合は、ターゲット サーバーに対する管理者アクセス許可が必要です。 IIS ではこのアクセス許可レベルが必要です。 HTTP を使用して発行しようとしていない場合は、ターゲット パスに対する書き込みアクセス許可のみが必要です。

サーバー認証に関する問題

"匿名アクセス" がオフになっているリモート サーバーに対して発行すると、次の警告が表示されます。

"The files could not be downloaded from http://<remoteserver>/<myapplication>/.  The remote server returned an error: (401) Unauthorized."

Note

既定の資格情報以外の資格情報を要求するメッセージが表示される場合は、NTLM (NT Challenge/Response) 認証を正しく機能させることができます。そして、セキュリティ ダイアログボックスで、指定した資格情報を今後のセッション用に保存するかどうか確認するメッセージが表示されたら、[OK] をクリックします。 ただし、この回避策は基本認証に対しては正しく機能しません。

サードパーティの Web サーバーを使用する

IIS 以外の Web サーバーから ClickOnce アプリケーションを配置しようとしている場合に、サーバーから、配置マニフェストやアプリケーション マニフェストなどの重要な ClickOnce ファイルについて正しくないコンテンツ タイプが返されると、問題が発生することがあります。 この問題を解決するには、サーバーに新しいコンテンツ タイプを追加する方法に関する Web サーバーのヘルプ ドキュメントを参照し、次の表に一覧で示したファイル名拡張子のマッピングをすべて確認してください。

ファイル名の拡張子 コンテンツ タイプ
.application application/x-ms-application
.manifest application/x-ms-manifest
.deploy application/octet-stream
.msu application/octet-stream
.msp application/octet-stream

ClickOnce とマップされたドライブ

Visual Studio を使用して ClickOnce アプリケーションを発行する場合は、マップされたドライブをインストール場所として指定できません。 ただし、マニフェスト ジェネレーターとエディター (Mage.exe および MageUI.exe) を使用して、マップされたドライブからインストールするように ClickOnce アプリケーションを変更することができます。 詳細については、次を参照してください。 Mage.exe (マニフェスト生成および編集ツール)MageUI.exe (マニフェスト生成および編集ツールのグラフィカル クライアント)します。

FTP プロトコルはアプリケーションのインストールではサポートされない

ClickOnce では、任意の HTTP 1.1 Web サーバーまたはファイル サーバーからのアプリケーションのインストールをサポートしています。 FTP (ファイル転送プロトコル) は、アプリケーションのインストールではサポートされていません。 FTP は、アプリケーションの発行にのみ使用できます。 次の表に、これらの相違点を示します。

URL の種類 説明
ftp:// このプロトコルを使用して ClickOnce アプリケーションを発行できます。
http:// このプロトコルを使用して ClickOnce アプリケーションをインストールできます。
https:// このプロトコルを使用して ClickOnce アプリケーションをインストールできます。
file:// このプロトコルを使用して ClickOnce アプリケーションをインストールできます。

Windows ファイアウォール

既定では、Windows は Windows ファイアウォールを有効にします。 Windows がインストールされているコンピューターでアプリケーションを開発している場合でも、IIS を実行しているローカル サーバーから ClickOnce アプリケーションを発行して実行することができます。 ただし、Windows ファイアウォールを開く場合を除き、別のコンピューターから IIS を実行しているサーバーにアクセスすることはできません。 Windows ファイアウォールの管理に関する手順については、Windows ヘルプを参照してください。

Windows Server: FrontPage のサーバー拡張機能を有効にする

HTTP を使用する Windows Web サーバーにアプリケーションを発行するには、Microsoft の FrontPage Server Extensions が必要です。

FrontPage Server Extensions は、既定では Windows Server にインストールされていません。 Visual Studio を使用して、FrontPage Server Extensions と共に HTTP を使用する Windows Server の Web サーバーに発行する場合は、まず FrontPage Server Extensions をインストールする必要があります。 このインストールは、Windows Server の管理ツールであるサーバーの役割管理を使用して実行できます。

Windows Server: ロックダウンされたコンテンツ タイプ

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" にする必要があります。

  • 拡張子が "<em>" で MIME の種類が "application/octet-stream" である MIME の種類を作成すると、ブロックされていないファイルの種類のファイルをダウンロードできるようになります (ただし、*.aspx*.asmx などのブロックされるファイルの種類はダウンロードできません)。

    Windows Server で MIME の種類を構成する具体的な手順については、「Web サイトまたはアプリケーションに MIME の種類を追加する方法」を参照してください。

コンテンツ タイプのマッピング

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 圧縮を使用するダウンロードを実行できます。これは、クライアントにストリームを送信する前に、GZIP アルゴリズムを使用してデータ ストリームを圧縮する Web サーバー テクノロジです。 クライアント (この場合は ClickOnce) で、ファイルの読み取り前にストリームが展開されます。

IIS を使用している場合は、HTTP 圧縮を簡単に有効にできます。 ただし、HTTP 圧縮を有効にすると、特定のファイルの種類 (つまり HTML ファイルとテキスト ファイル) に対してのみ有効になります。 アセンブリ (.dll)、XML (.xml)、配置マニフェスト (.application)、アプリケーション マニフェスト (.manifest) に対して圧縮を有効にするには、IIS で圧縮する種類の一覧に、これらのファイルの種類を追加する必要があります。 配置にファイルの種類を追加するまでは、テキスト ファイルと HTML ファイルのみが圧縮されます。

IIS の詳細な手順については、「HTTP 圧縮のために追加のドキュメントの種類を指定する方法」を参照してください。