none
ClickOnceでクライアントにインストール時にエラー(URLDownloadToCacheFile failed with HRESULT '-2146697211') RRS feed

  • 質問

  • ClickOnceを使って、クライアントにWebページから実行してもらうようにしているのですがクライアントマシンに、.NET Framework 2.0がインストールされていない場合以下のようなエラーがでて困っています。

    何かご存知の方いらっしゃいましたらご教授ください。

    エラー:
    アクセス失敗。。
    'http://yamada5/WinClient/WinClient.application' をダウ
    ンロードしようとしてエラーが発生しました。

    詳細については、'C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\VSD19E.tmp\install.log'

    にあるセットアップ ログ ファイルを参照してください。
    ログ:
    The following properties have been set:
    Property: [AdminUser] = true {boolean}
    Property: [ProcessorArchitecture] = Intel {string}
    Property: [VersionNT] = 5.2.1 {version}
    Running checks for package '.NET Framework 2.0', phase
    BuildList
    Running external check with command line
    "C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\VSD19E.tmp\DotNetFX\dotnetchk.exe"
    -lcid:1041
    Process exited with code 2
    Setting value '2 {int}' for property 'DotNetInstalled'
    Reading value 'Version' of registry key
    'HKLM\Software\Microsoft\Internet Explorer'
    Read string value '6.0.3790.1830'
    Setting value '6.0.3790.1830 {string}' for property
    'IEVersion'
    The following properties have been set for package '.NET
    Framework 2.0':
    Property: [DotNetInstalled] = 2 {int}
    Property: [IEVersion] = 6.0.3790.1830 {string}
    Running checks for command 'DotNetFX\instmsia.exe'
    Result of running operator 'ValueExists' on property
    'VersionNT': true
    Result of checks for command 'DotNetFX\instmsia.exe' is
    'Bypass'
    Running checks for command
    'DotNetFX\WindowsInstaller-KB893803-v2-x86.exe'
    Result of running operator 'ValueExists' on property
    'Version9x': false
    Result of running operator 'VersionLessThan' on property
    'VersionNT' and value '5.0.3': false
    Result of running operator 'VersionGreaterThanOrEqualTo'
    on property 'VersionMsi' and value '3.0': true
    Result of checks for command
    'DotNetFX\WindowsInstaller-KB893803-v2-x86.exe' is
    'Bypass'
    Running checks for command 'DotNetFX\dotnetfx.exe'
    Result of running operator 'ValueNotEqualTo' on property
    'DotNetInstalled' and value '0': true
    Result of checks for command 'DotNetFX\dotnetfx.exe' is
    'Bypass'
    Running checks for command 'DotNetFX\langpack.exe'
    Result of running operator 'ValueEqualTo' on property
    'DotNetInstalled' and value '2': true
    Result of checks for command 'DotNetFX\langpack.exe' is
    'Bypass'
    '.NET Framework 2.0' RunCheck result: No Install Needed
    Launching Application.
    URLDownloadToCacheFile failed with HRESULT '-2146697211'
    Error: 'http://yamada5/WinClient/WinClient.application'
    をダウンロードしようとしてエラーが発生しました。

     ※yamada5は開発機です。

    現在開発マシンの、ローカルの仮想ディレクトリに発行して、そのコピーをサーバに配置しています。

    ■ClickOnceの設定

    ・発行場所→ローカルの仮想ディレクトリ

    ・アプリケーションはオンラインでのみ実行可能

    ・完全信頼するアプリケーション

    ・必須コンポーネントをインストールするセットアッププログラムを作成する→必須コンポーネントをコンポーネントの開発元のWebサイトからDLする という設定にしています。

    (他は特に変更していません)

      宜しくお願いします。

    2006年10月19日 2:05

すべての返信

  • 以下のサイトを見ると同じ問題を抱えている人がたくさんいるみたいですね(バグでしょうか…)。

    URLDownloadToCacheFile error when trying to clickonce install

    これを読むと、
     windows installer 3.1を必須コンポーネントから外したら現象が現れなくなったという例

     MIMEタイプをちゃんと設定したら解決したという例
    があるみたいです。

    2006年10月20日 7:15
  • とっちゃんです。
    #回答ではありません

    ログを見る限り、.NET Framework 2.0 はインストールされていると解釈されていますね。

    バグとかもないとはいえませんが、環境依存の何かという可能性もやっぱり否定は出来ません。

    ログから判ることは、

    1. dotnetchk.exe -lcid:1041 で実行した結果、2 を返してきたこと。
    2. そのため、.NET Framework 2.0 はインストール済みであると判断されたこと。
    3. 他にも、IE のバージョンが6であること
    4. WindowsInstalelr 3.1 が既に導入済みであるということ。

    というあたりがわかります。IEのバージョンだけはそれでなにかを動かすというものではありませんが、他は実行の必要なし(ByPass)となっていますので、結局のところ、何にもしないで ClickOnce 本体を動かそうとしているということがわかります。

    自分で、package.xml や product.xml を弄った(あるいは、dotnetchk.exeを差し替えた)などがないのなら、環境依存の問題や(Win2003だとまずいとか)、何らかのバグという可能性が高いと思いますよ。

    テスト環境として、つぶせる(開発側も含め)のを用意して、VS2005SP1のベータをあてて試してみるというのも一つのテスト手段です。

    それでなおるのなら、SP1の正式出荷を待つ(待てるかどうかはありますが)ということになりますし(それまでは、手動で .NET 2.0 を事前展開する)、それでも直らないということなら、バグとして正規ルートで報告する必要があると思います。

    私の手元に試せる環境がないため、これ以上はなんとも(^^;

     

    2006年10月20日 7:52
  • ご返信ありがとうございます。(確認が遅れましてすいません)

    色々検索してみたところ
    必須コンポーネントをインストールする設定にした時に作成されるSetup.exeをパラメータをつけて起動すれば、Setup.exeが参照する先のURLを変えられるようです。

    Setup.exe -url = http://本番サーバ/WinClient/

    http://msdn2.microsoft.com/ja-jp/library/h4k032e1(VS.80).aspx

    Webからパラメータ付きでSetup.exeを呼び出す方法がまだ未解決ですが;


    2006年12月1日 5:53
  • 私のところでは必須コンポーネントさえダウンロードに失敗し

    別のマシンから必須コンポーネントをコピーしてセットアップしても

    appllicationファイルのダウンロードで上記のエラーになるという現象が発生しました。

    コンピュータをドメインに参加させたら出なくなりました。

     

     

    2008年4月18日 4:21