从Web地址下载更新。 C#

时间:2010-02-07 09:45:43

标签: c# winforms stack-trace

好的,所以我有一个应用程序可以在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)文件不可用(例如找不到文件,没有访问权限)。我不明白这一点......它之前有效......现在不是吗?

3 个答案:

答案 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)

您可能想尝试通过浏览器检查网址。您可能还想捕获这种服务器连接异常,并告诉用户服务器当前不可用,稍后再试。