none
ClickOnce経由でインストール時にエラー RRS feed

  • 質問

  • ローカルイントラネット上のClickOnceで発行したアプリケーションをインストールする際に、

    ある特定の端末ののみ下記エラーが発生しインストールが出来ません。

    必須コンポーネントとしてCrystalReportsを含めていますが、CrystalReportsのランタイムのインストールは正常となり、

    .NETで作成したアプリのインストール中にエラーとなります。

    ※他の端末では問題なくインストール可能です。

    プラットフォームのバージョン情報
    	Windows 			: 10.0.14393.0 (Win32NT)
    	Common Language Runtime 	: 4.0.30319.42000
    	System.Deployment.dll 		: 4.6.1586.0 built by: NETFXREL2
    	clr.dll 			: 4.6.1648.0 built by: NETFXREL3STAGE
    	dfdll.dll 			: 4.6.1586.0 built by: NETFXREL2
    	dfshim.dll 			: 10.0.14393.0 (rs1_release.160715-1616)
    
    ソース
    	配置の URL			: http://192.168.0.1/SetUp/Test.application
    						サーバー		: Microsoft-IIS/8.5
    	配置プロバイダの URL		: http://192.168.0.1/SetUp/Test.application
    	アプリケーションの URL	: http://192.168.0.1/SetUp/Application%20Files/Test_0_0_0_3/Test.exe.manifest
    						サーバー		: Microsoft-IIS/8.5
    
    ID
    	配置 ID		: Test.application, Version=0.0.0.3, Culture=neutral, PublicKeyToken=a35ca4c2c70ee70f, processorArchitecture=msil
    	アプリケーション ID		: Test.exe, Version=0.0.0.3, Culture=neutral, PublicKeyToken=a35ca4c2c70ee70f, processorArchitecture=msil, type=win32
    
    アプリケーションの概要
    	* インストールできるアプリケーションです。
    
    エラーの概要
    	以下はエラーの概要です。これらのエラーの詳細はログに一覧表示されています。
    	* http://192.168.0.1/SetUp/Test.application のライセンス認証により例外が発生しました。 次の失敗メッセージが検出されました:
    		+ http://192.168.0.1/SetUp/Application Files/Test_0_0_0_3/CrystalDecisions.ReportAppServer.CommonControls.dll.deploy のダウンロードに失敗しました。
    		+ 転送接続からデータを読み取れません: 既存の接続はリモート ホストに強制的に切断されました。。
    		+ 既存の接続はリモート ホストに強制的に切断されました。
    
    コンポーネント ストア トランザクションの失敗の概要
    	トランザクション エラーは検出されませんでした。
    
    警告
    	この操作中に警告は発生しませんでした。
    
    操作の進行状況
    	* [2017/05/26 15:22:13] : http://192.168.0.1/SetUp/Test.application のライセンス認証が開始されました。
    	* [2017/05/26 15:22:13] : 配置マニフェストの処理は正常に完了しました。
    	* [2017/05/26 15:22:13] : アプリケーションのインストールが開始されました。
    	* [2017/05/26 15:22:13] : アプリケーション マニフェストの処理は正常に完了しました。
    	* [2017/05/26 15:22:16] : 互換性のあるランタイム バージョン 4.0.30319 が見つかりました。
    	* [2017/05/26 15:22:16] : 信頼の要求とプラットフォームの検出が完了しました。
    
    エラーの詳細
    	この操作中に次のエラーが検出されました。
    	* [2017/05/26 15:22:37] System.Deployment.Application.DeploymentDownloadException (不明な subtype)
    		- http://192.168.0.1/SetUp/Application Files/Test_0_0_0_3/CrystalDecisions.ReportAppServer.CommonControls.dll.deploy のダウンロードに失敗しました。
    		- ソース:System.Deployment
    		- スタック トレース:
    			場所 System.Deployment.Application.SystemNetDownloader.DownloadSingleFile(DownloadQueueItem next)
    			場所 System.Deployment.Application.SystemNetDownloader.DownloadAllFiles()
    			場所 System.Deployment.Application.FileDownloader.Download(SubscriptionState subState, X509Certificate2 clientCertificate)
    			場所 System.Deployment.Application.DownloadManager.DownloadDependencies(SubscriptionState subState, AssemblyManifest deployManifest, AssemblyManifest appManifest, Uri sourceUriBase, String targetDirectory, String group, IDownloadNotification notification, DownloadOptions options)
    			場所 System.Deployment.Application.ApplicationActivator.DownloadApplication(SubscriptionState subState, ActivationDescription actDesc, Int64 transactionId, TempDirectory& downloadTemp)
    			場所 System.Deployment.Application.ApplicationActivator.InstallApplication(SubscriptionState& subState, ActivationDescription actDesc)
    			場所 System.Deployment.Application.ApplicationActivator.PerformDeploymentActivation(Uri activationUri, Boolean isShortcut, String textualSubId, String deploymentProviderUrlFromExtension, BrowserSettings browserSettings, String& errorPageUrl)
    			場所 System.Deployment.Application.ApplicationActivator.ActivateDeploymentWorker(Object state)
    		--- 内部例外 ---
    		System.IO.IOException
    		- 転送接続からデータを読み取れません: 既存の接続はリモート ホストに強制的に切断されました。。
    		- ソース:System
    		- スタック トレース:
    			場所 System.Net.ConnectStream.Read(Byte[] buffer, Int32 offset, Int32 size)
    			場所 System.Deployment.Application.SystemNetDownloader.DownloadSingleFile(DownloadQueueItem next)
    		--- 内部例外 ---
    		System.Net.Sockets.SocketException
    		- 既存の接続はリモート ホストに強制的に切断されました。
    		- ソース:System
    		- スタック トレース:
    			場所 System.Net.Sockets.Socket.Receive(Byte[] buffer, Int32 offset, Int32 size, SocketFlags socketFlags)
    			場所 System.Net.Sockets.NetworkStream.Read(Byte[] buffer, Int32 offset, Int32 size)
    
    コンポーネント ストア トランザクションの詳細
    	トランザクション情報はありません。

    インストール中、対象サーバへのパケットは欠落することはありませんでした。

    エラーの対象となっている「CrystalDecisions.ReportAppServer.CommonControls.dll.deploy」へのアクセス権等は確認しましたが問題ありませんし、インストール不可能な端末から「http://192.168.0.1/SetUp/Application Files/Test_0_0_0_3/CrystalDecisions.ReportAppServer.CommonControls.dll.deploy」をブラウザで直接指定するとダウンロード可能です。

    インターネットオプションの設定等もインストール可能な端末と見比べましたが、差異はありません。

    「CrystalDecisions.ReportAppServer.CommonControls.dll.deploy」をアプリケーションファイルから除外するとインストール可能で、CrystalReportsの動作も問題ありませんでした。

    なぜ特定の端末のみインストールが行えないのか、また「CrystalDecisions.ReportAppServer.CommonControls.dll.deploy」はアプリケーションファイルに含める必要がないのか、ご教授頂けますでしょうか?

    2017年5月30日 8:46

すべての返信

  • 例えば端末が64ビットOSで64ビットのクリスタルレポートがインストールされてしまい、セットアップでは32ビットのランタイムを求めているのにそれが入らなくてインストールが進まないということはないでしょうか?

    ★良い回答には回答済みマークを付けよう! MVP - .NET  http://d.hatena.ne.jp/trapemiya/

    2017年5月30日 9:07
    モデレータ
  • 例えば端末が64ビットOSで64ビットのクリスタルレポートがインストールされてしまい、セットアップでは32ビットのランタイムを求めているのにそれが入らなくてインストールが進まないということはないでしょうか?

    ★良い回答には回答済みマークを付けよう! MVP - .NET  http://d.hatena.ne.jp/trapemiya/

    該当エラーの端末は64bitですが、他の64bitマシンではうまく行きます。(他の32bitマシンでも正常)

    従ってご指摘頂いた内容には合致しないように思うのですが、如何でしょうか?

    2017年5月30日 9:56
  • 例外メッセージは「既存の接続はリモート ホストに強制的に切断されました」なので、ネットワークトラブル、Web サーバーのトラブル、プロキシのトラブル、ウィルス対策ソフトなどのトラブルだと思います。

    まず、IIS のログで該当のマシンから対象の DLL のダウンロード要求が来ているかを確認するところからでしょうか。
    あとは問題のマシンに入っているウィルス対策ソフト、ファイヤウォールなどを一時的に無効化した際に減少が変わるかどうかですかね。

    2017年5月30日 13:18
    モデレータ
  • 同時刻に他の端末ではインストール可能でしたので、Webサーバ側のトラブルではないと考えます。

    プロキシサーバは利用していません。

    IISのログから対象ファイルのリクエストが来ていることは確認致しました。

    ウイルス対策ソフト、Windowsファイアウォールを無効にしましたがインストーラの進捗は変わらず、同様のエラーとなりました。

    2017年5月31日 1:57
  • ClickOnce でのダウンロードのログは出てるとなると謎が深まりますね。

    Fiddler などのツールでダウンロードが正常終了してるかどうかを観測するとかになるのだろうか...?

    2017年5月31日 3:30
    モデレータ
  • 該当エラーの端末は64bitですが、他の64bitマシンではうまく行きます。(他の32bitマシンでも正常)

    従ってご指摘頂いた内容には合致しないように思うのですが、如何でしょうか?

    失礼いたしました。64bit絡みの問題ではなかったようですね。
    さて、ClickOnce関連のゴミが端末に残ってしまい、その影響が出ているのかもしれません。ClickOnce関連のキャッシュを削除するなどしてみてはいかがでしょうか?
    また、もうご覧になられているかもしれませんが、以下で詳細ログを取るなどしてみてはいかがでしょうか?

    ClickOnce 配置のトラブルシューティング
    https://msdn.microsoft.com/ja-jp/library/fb94w1t5.aspx

    ★良い回答には回答済みマークを付けよう! MVP - .NET  http://d.hatena.ne.jp/trapemiya/

    2017年5月31日 4:45
    モデレータ
  • 色々と有難うございます。

    Fidderや詳細ログにてもう少し追ってます。

    進展がありましたらまた投稿させて頂きます。

    2017年5月31日 7:02