Я развертываю приложение WPF в бизнес-среде (AD) с помощью развертывания clickonce. Приложение разрабатывается с помощью Visual Studio 2013 и основано на .Net 4.5. Развертывание предназначено только для машин Windows 7. Сервер развертывания использует IIS 7.5 и работает на Windows Server 2008 R2.прерывистый сбой при развертывании clickonce (0x8007001F)
В развертывании настроено, что приложения проверяют наличие обновлений до запуска приложений.
Развертывание работает, по крайней мере, большую часть времени, но я недавно испытывал случайные проблемы на нескольких машинах при установке обновления приложения.
Пользователь получает следующее сообщение об ошибке:
Application cannot be started. Contact the application publisher.
Cannot start the application. Contact the application vendor for assistance.
эта ошибка является документом в MSDN, Troubleshooting Specific Errors in ClickOnce Deployments
These are generic error messages that occur when the application cannot be started, and no other specific reason can be found.
мне удалось собрать файл журнала, который покрывает эту ошибку:
PLATFORM VERSION INFO
Windows : 6.1.7601.65536 (Win32NT)
Common Language Runtime : 4.0.30319.18444
System.Deployment.dll : 4.0.30319.18408 built by: FX451RTMGREL
clr.dll : 4.0.30319.18444 built by: FX451RTMGDR
dfdll.dll : 4.0.30319.18408 built by: FX451RTMGREL
dfshim.dll : 4.0.41209.0 (Main.041209-0000)
SOURCES
Deployment url: file:///C:/Users/ADUSERNAME/AppData/Roaming/Microsoft/Windows/Start%20Menu/Programs/Supply%20Chain%20Services%20-%20Systems%20and%20Processes/APPLICATIONNAME/APPLICATIONNAME%20Suite.appref-ms%7C
Server: Microsoft-IIS/7.5
X-Powered-By: ASP.NET
Deployment Provider url: http://SERVERNAME:PORT/APPLICATIONNAME.application
Application url: http://SERVERNAME:PORT/Application%20Files/APPLICATIONNAME_1_0_3_9/APPLICATIONNAME.exe.manifest
Server: Microsoft-IIS/7.5
X-Powered-By: ASP.NET
IDENTITIES
Application Identity: APPLICATIONNAME.exe, Version=1.0.3.9, Culture=neutral, PublicKeyToken=XXXXXXXXXXXXXXXX, processorArchitecture=msil, type=win32
ERROR SUMMARY
Below is a summary of the errors, details of these errors are listed later in the log.
* Activation of C:\Users\ADUSERNAME\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Supply Chain Services - Systems and Processes\APPLICATIONNAME\APPLICATIONNAME Suite.appref-ms| resulted in exception. Following failure messages were detected:
+ A device attached to the system is not functioning. (Exception from HRESULT: 0x8007001F)
COMPONENT STORE TRANSACTION FAILURE SUMMARY
No transaction error was detected.
WARNINGS
There were no warnings during this operation.
OPERATION PROGRESS STATUS
* [08/09/2014 09:25:02] : Activation of C:\Users\ADUSERNAME\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Supply Chain Services - Systems and Processes\APPLICATIONNAME\APPLICATIONNAME Suite.appref-ms| has started.
* [08/09/2014 09:25:04] : Performing necessary update check as specified by the deployment.
* [08/09/2014 09:25:07] : Consuming new update.
* [08/09/2014 09:25:09] : Installation of the application has started.
* [08/09/2014 09:25:10] : Processing of application manifest has successfully completed.
* [08/09/2014 09:25:10] : Found compatible runtime version 4.0.30319.
* [08/09/2014 09:25:10] : Request of trust and detection of platform is complete.
* [08/09/2014 09:25:18] : Downloading of subscription dependencies is complete.
* [08/09/2014 09:25:18] : Commit of the downloaded application has started.
ERROR DETAILS
Following errors were detected during this operation.
* [08/09/2014 09:25:22] System.Runtime.InteropServices.COMException
- A device attached to the system is not functioning. (Exception from HRESULT: 0x8007001F)
- Source: System.Deployment
- Stack trace:
at System.Deployment.Internal.Isolation.IStore.Transact(IntPtr cOperation, StoreTransactionOperation[] rgOperations, UInt32[] rgDispositions, Int32[] rgResults)
at System.Deployment.Application.ComponentStore.SubmitStoreTransaction(StoreTransactionContext storeTxn, SubscriptionState subState)
at System.Deployment.Application.ComponentStore.CommitApplication(SubscriptionState subState, CommitApplicationParams commitParams)
at System.Deployment.Application.SubscriptionStore.CommitApplication(SubscriptionState& subState, CommitApplicationParams commitParams)
at System.Deployment.Application.ApplicationActivator.InstallApplication(SubscriptionState& subState, ActivationDescription actDesc)
at System.Deployment.Application.ApplicationActivator.ConsumeUpdatedDeployment(SubscriptionState& subState, ActivationDescription actDesc)
at System.Deployment.Application.ApplicationActivator.PerformDeploymentUpdate(SubscriptionState& subState, String& errorPageUrl)
at System.Deployment.Application.ApplicationActivator.ProcessOrFollowShortcut(String shortcutFile, String& errorPageUrl, TempFile& deployFile)
at System.Deployment.Application.ApplicationActivator.PerformDeploymentActivation(Uri activationUri, Boolean isShortcut, String textualSubId, String deploymentProviderUrlFromExtension, BrowserSettings browserSettings, String& errorPageUrl)
at System.Deployment.Application.ApplicationActivator.ActivateDeploymentWorker(Object state)
COMPONENT STORE TRANSACTION DETAILS
* Transaction at [08/09/2014 09:25:22]
+ System.Deployment.Internal.Isolation.StoreOperationStageComponent
- Status: Installed
- HRESULT: 0x0
- Manifest: ZJHPL38T.V57.application
+ System.Deployment.Internal.Isolation.StoreOperationSetDeploymentMetadata
- Status: Set
- HRESULT: 0x0
+ System.Deployment.Internal.Isolation.StoreOperationStageComponent
- Status: Installed
- HRESULT: 0x0
- Manifest: APPLICATIONNAME.exe.manifest
+ System.Deployment.Internal.Isolation.StoreOperationStageComponentFile
- Status: Installed
- HRESULT: 0x0
- File: APPLICATIONNAME.exe.config
!!! Removed 550 Lines !!!
+ System.Deployment.Internal.Isolation.StoreOperationInstallDeployment
- Status: Installed
- HRESULT: 0x0
- AppId: http://SERVERNAME:PORT/APPLICATIONNAME.application#APPLICATIONNAME.application, Version=1.0.3.9, Culture=neutral, PublicKeyToken=e5b020d18338a5ca, processorArchitecture=msil
+ System.Deployment.Internal.Isolation.StoreOperationSetDeploymentMetadata
- Status: Set
- HRESULT: 0x0
+ System.Deployment.Internal.Isolation.StoreOperationUninstallDeployment
- Status: Uninstalled
- HRESULT: 0x0
- AppId: http://SERVERNAME:PORT/APPLICATIONNAME.application#APPLICATIONNAME.application, Version=1.0.3.3, Culture=neutral, PublicKeyToken=e5b020d18338a5ca, processorArchitecture=msil
+ System.Deployment.Internal.Isolation.StoreOperationSetDeploymentMetadata
- Status: Set
- HRESULT: 0x0
+ System.Deployment.Internal.Isolation.StoreTransactionOperationType (27)
- HRESULT: 0x8007001f
Я также активировал подробное ведение журнала (using this guide) для моего но я не смог воспроизвести эту ошибку или распознал шаблон, который вызывает ошибку.
Ошибка распространяется только на От 5% до 10% процентов пользователей, удалите & переустановить это обходное решение, но не решение.
В ответ на Hans Passant:
| действительно странный характер, я не имею ни малейшего понятия, откуда оно взялось, и в чем оно заключается в этом контексте. Однако URL-адрес развертывания (включая символ |) всегда один и тот же, и он работает в 90% случаев. Я не думаю, что | символ является причиной проблемы. Тем не менее, я постараюсь выяснить, почему персонаж есть и потом вернуться к вам.
Удалить или переустановить проблему на стороне клиента (тот же установщик!). Поэтому мы можем исключить поврежденную установку .Net/VS.
Может возникнуть проблема с вредоносным ПО (McAfee). Я буду исследовать, как только мне удастся воспроизвести ошибку на одной из моих тестовых машин.
Путь к файлу - 123 символа; имя файла имеет 21 символ. Путь к файлу + имя файла = 144 символов
The | действительно странный персонаж, я понятия не имею, откуда он. – Joel
Вы обфускали имя, удалив важную подсказку. Подсчитайте количество символов в реальном имени и сообщите нам, сколько. –
144 символа с пробелами, вдали от ограничения MAX_PATH. – Joel