今まで使用できていた問題なく利用できたClickOnceアプリケーションがありました。
しかし、突然、起動時にライセンス認証のエラーが出るようになりましたので、忘れないようにメモを残します。
環境
- Windows7 sp1
- .NET Framework 4.5
- ClickOnceアプリは共有フォルダにて配布
- 共有フォルダのアクセス権は、Everyoneでフルコントロール
症状
共有フォルダ上に置いたClickOnceアプリのsetup.exe
ファイルを実行しても、エラーが出てインストールができませんでした。
エラーの詳細なログは以下の通りです(一部改変)。
プラットフォームのバージョン情報 Windows : 6.1.7601.65536 (Win32NT) Common Language Runtime : 4.0.30319.18063 System.Deployment.dll : 4.0.30319.34244 built by: FX452RTMGDR clr.dll : 4.0.30319.18063 built by: FX45RTMGDR dfdll.dll : 4.0.30319.34244 built by: FX452RTMGDR dfshim.dll : 4.0.31106.0 (Main.031106-0000) ソース 配置の URL : file:///%USERPROFILE%/AppData/Roaming/Microsoft/Windows/Start%20Menu/Programs/***... エラーの概要 以下はエラーの概要です。これらのエラーの詳細はログに一覧表示されています。 * %USERPROFILE%\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\***.appref-ms| のライセンス認証により例外が発生しました。 次の失敗メッセージが検出されました: + パス '%USERPROFILE%\AppData\Local\Temp\Deployment\WE8AH9KP.H8M' へのアクセスが拒否されました。 コンポーネント ストア トランザクションの失敗の概要 トランザクション エラーは検出されませんでした。 警告 この操作中に警告は発生しませんでした。 操作の進行状況 * [2014/11/** *:*:**] : %USERPROFILE%\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\***.appref-ms| のライセンス認証が開始されました。 * [2014/11/** *:*:*] : 配置で指定されたように必要な更新チェックを実行しています。 エラーの詳細 この操作中に次のエラーが検出されました。 * [2014/11/** *:*:*] System.UnauthorizedAccessException - パス '%USERPROFILE%\AppData\Local\Temp\Deployment\WE8AH9KP.H8M' へのアクセスが拒否されました。 - ソース: mscorlib - スタック トレース: 場所 System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath) 場所 System.IO.Directory.InternalCreateDirectory(String fullPath, String path, Object dirSecurityObj, Boolean checkHost) 場所 System.IO.Directory.InternalCreateDirectoryHelper(String path, Boolean checkHost) 場所 System.Deployment.Application.DownloadManager.DownloadDeploymentManifestDirect(SubscriptionStore subStore, Uri& sourceUri, TempFile& tempFile, IDownloadNotification notification, DownloadOptions options, ServerInformation& serverInformation) 場所 System.Deployment.Application.DownloadManager.DownloadDeploymentManifest(SubscriptionStore subStore, Uri& sourceUri, TempFile& tempFile, IDownloadNotification notification, DownloadOptions options) 場所 System.Deployment.Application.ApplicationActivator.PerformDeploymentUpdate(SubscriptionState& subState, String& errorPageUrl) 場所 System.Deployment.Application.ApplicationActivator.ProcessOrFollowShortcut(String shortcutFile, String& errorPageUrl, TempFile& deployFile) 場所 System.Deployment.Application.ApplicationActivator.PerformDeploymentActivation(Uri activationUri, Boolean isShortcut, String textualSubId, String deploymentProviderUrlFromExtension, BrowserSettings browserSettings, String& errorPageUrl) 場所 System.Deployment.Application.ApplicationActivator.ActivateDeploymentWorker(Object state) コンポーネント ストア トランザクションの詳細 トランザクション情報はありません。
対応
似たような事例がないかを調べてみると、以下の掲示板がありました。
ActiveDirectory環境下でPowerUsersにてClickOnceアプリケーションをインストールするには?
エラーの詳細が異なりますが、原因はアクセス権に関するもののようでした。
次に、 %USERPROFILE%\AppData\Local\Temp\Deployment
フォルダのアクセス権を調べてみたところ、なぜかアクセス権が消えていました。
そのため、上記のフォルダのアクセス権にログオンしているユーザーを追加してみたところ、エラーが出なくなりインストールすることができました。
ちなみに、発生した根本的な原因は分かりませんでした...