Downloading updates from web address. C#
Ok, so I have an app that checks for updates at http://mysite.ext/sub/sub2/sub3/appname/ and after the very first publish (a few days ago) it was checking for/downloading updates from that url correctly with no problems.
But today, I published a new version, only minor changes to the ui (changing button text etc), then uploaded latest publish to server... Then opened the existing version of my app from my desktop, and it checked for updates, found an update and proceeded to download it, but then failed with this error:
Cannot download the application. The application is missing required files. Contact application vendor for assistance.
I clicked the Details button on that error dialog, and it opened a text file which said:
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.
Why is this update feature suddenly not working? How can I fix it?
UPDATE:
Since I created this question I've finished my own little ftp client, and tried to upload the files mentioned in the stacktrace above to the server and got this error:
The remote server returned an error: (550) File unavailable (e.g. file not found, no access). I don't understand this... It was working before... And now it's not?
According to the log it seems that the application cannot download the manifest file because it is missing (error 404):
http://mysite.ext/products/multimediaoffice/appname/Application Files/appname_11_0_0_5/appname.exe.manifest
You should verify that this file is present on the server and that this address is accessible.
There's also a space
in this address - Application Files
. Could this be the problem?
There must have been some kind of error when you uploaded the new version, because it isn't on the server, at least, not where the update system expects it to be.
The exception seemed to be that the update server was unavailable (HTTP 404). Tried again?
Quoting from your details:
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)
You might want to try checking the URL via browser. You probably might also want to catch that kind of server connection exception and tell the user that the server is currently unavailable and try again later.
精彩评论