好的,所以我有一个应用程序可以在http://mysite.ext/sub/sub2/sub3/appname/检查更新,并在第一次发布(几天前)之后正确检查/下载该网址的更新,没有任何问题。
但今天,我发布了一个新版本,只对ui进行了微小的更改(更改按钮文本等),然后将最新发布上传到服务器...然后从我的桌面打开现有版本的应用程序,并检查更新,发现更新并继续下载,但随后出现此错误:
Cannot download the application. The application is missing required files. Contact application vendor for assistance.
我点击了该错误对话框中的“详细信息”按钮,然后打开了一个文本文件:
PLATFORM VERSION INFO
Windows : 6.1.7600.0 (Win32NT)
Common Language Runtime : 4.0.21006.1
System.Deployment.dll : 4.0.21006.1 (B2Rel.021006-0100)
clr.dll : 4.0.21006.1 (B2Rel.021006-0100)
dfdll.dll : 4.0.21006.1 (B2Rel.021006-0100)
dfshim.dll : 4.0.30902.0 (Main.030902-0000)
SOURCES
Deployment url : file:///C:/Users/Jason/Desktop/appname.appref-ms%7C
Server : Microsoft-IIS/7.0
X-Powered-By : ASP.NET
Deployment Provider url : http://mysite.ext/products/multimediaoffice/appname/appname.application
ERROR SUMMARY
Below is a summary of the errors, details of these errors are listed later in the log.
* Activation of C:\Users\Jason\Desktop\appname.appref-ms| resulted in exception. Following failure messages were detected:
+ Downloading http://mysite.ext/products/multimediaoffice/appname/Application Files/appname_11_0_0_5/appname.exe.manifest did not succeed.
+ The remote server returned an error: (404) Not Found.
COMPONENT STORE TRANSACTION FAILURE SUMMARY
No transaction error was detected.
WARNINGS
There were no warnings during this operation.
OPERATION PROGRESS STATUS
* [7/02/2010 8:38:03 PM] : Activation of C:\Users\Jason\Desktop\appname.appref-ms| has started.
* [7/02/2010 8:38:03 PM] : Performing necessary update check as specified by the deployment.
* [7/02/2010 8:38:06 PM] : Consuming new update.
* [7/02/2010 8:38:07 PM] : Installation of the application has started.
ERROR DETAILS
Following errors were detected during this operation.
* [7/02/2010 8:38:09 PM] System.Deployment.Application.DeploymentDownloadException (Unknown subtype)
- Downloading http://mysite.ext/products/multimediaoffice/appname/Application Files/appname_11_0_0_5/appname.exe.manifest did not succeed.
- Source: System.Deployment
- Stack trace:
at System.Deployment.Application.SystemNetDownloader.DownloadSingleFile(DownloadQueueItem next)
at System.Deployment.Application.SystemNetDownloader.DownloadAllFiles()
at System.Deployment.Application.FileDownloader.Download(SubscriptionState subState)
at System.Deployment.Application.DownloadManager.DownloadManifestAsRawFile(Uri& sourceUri, String targetPath, IDownloadNotification notification, DownloadOptions options, ServerInformation& serverInformation)
at System.Deployment.Application.DownloadManager.DownloadApplicationManifest(AssemblyManifest deploymentManifest, String targetDir, Uri deploymentUri, IDownloadNotification notification, DownloadOptions options, Uri& appSourceUri, String& appManifestPath)
at System.Deployment.Application.ApplicationActivator.DownloadApplication(SubscriptionState subState, ActivationDescription actDesc, Int64 transactionId, TempDirectory& downloadTemp)
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)
--- Inner Exception ---
System.Net.WebException
- The remote server returned an error: (404) Not Found.
- Source: System
- Stack trace:
at System.Net.HttpWebRequest.GetResponse()
at System.Deployment.Application.SystemNetDownloader.DownloadSingleFile(DownloadQueueItem next)
COMPONENT STORE TRANSACTION DETAILS
No transaction information is available.
为什么此更新功能突然无效?我该如何解决?
更新:
由于我创建了这个问题,我已经完成了自己的小ftp客户端,并尝试将上面的堆栈跟踪中提到的文件上传到服务器并出现此错误:
远程服务器返回错误:(550)文件不可用(例如找不到文件,没有访问权限)。我不明白这一点......它之前有效......现在不是吗?
答案 0 :(得分:0)
根据日志,似乎应用程序无法下载清单文件,因为它已丢失(错误404):
http://mysite.ext/products/multimediaoffice/appname/Application Files/appname_11_0_0_5/appname.exe.manifest
您应该验证服务器上是否存在此文件,并且该地址可以访问。
此地址中还有一个space
- Application Files
。这可能是问题吗?
答案 1 :(得分:0)
上传新版本时肯定会出现某种错误,因为它不在服务器上,至少不在更新系统预期的位置。
答案 2 :(得分:0)
异常似乎是更新服务器不可用(HTTP 404)。再试一次?
引述您的详细信息:
System.Net.WebException
- The remote server returned an error: (404) Not Found.
- Source: System
- Stack trace:
at System.Net.HttpWebRequest.GetResponse()
at System.Deployment.Application.SystemNetDownloader.DownloadSingleFile(DownloadQueueItem next)
您可能想尝试通过浏览器检查网址。您可能还想捕获这种服务器连接异常,并告诉用户服务器当前不可用,稍后再试。