Ошибка ClickOnce: существующее соединение было принудительно закрыто удаленным хостом

У меня есть неприятная проблема. У меня есть приложение, развернутое с помощью clickonce. До сих пор он работал очень хорошо, и многие обновления были легко развернуты. На этот раз мне пришлось внести серьезные изменения в свое приложение. Это приводит к тому, что обновление составляет около 16 МБ. К сожалению, чаще всего на клиентских компьютерах возникает ошибка при загрузке обновления (в случайный момент):

ERROR SUMMARY
Below is a summary of the errors, details of these errors are listed later in the log.
* Activation of C:\Documents and Settings\Administrator\Menu Start\Programy\Marketell\Marketell.appref-ms| resulted in exception. Following failure messages were detected:
    + Downloading http://xx.xx.xx.xx/Marketell 2/Application Files/Marketell_1_0_1_2/CounterPathSDK.dll.deploy did not succeed.
    + Unable to read data from the transport connection: An existing connection was forcibly closed by the remote host.
    + An existing connection was forcibly closed by the remote host

И некоторые детали:

ERROR DETAILS
Following errors were detected during this operation.
* [2011-11-28 14:02:34] System.Deployment.Application.DeploymentDownloadException (Unknown subtype)
    - Downloading http://xx.xx.xx.xx/Marketell 2/Application Files/Marketell_1_0_1_2/CounterPathSDK.dll.deploy 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.DownloadDependencies(SubscriptionState subState, AssemblyManifest deployManifest, AssemblyManifest appManifest, Uri sourceUriBase, String targetDirectory, String group, IDownloadNotification notification, DownloadOptions options)
        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.IO.IOException
    - Unable to read data from the transport connection: Istniejące połączenie zostało gwałtownie zamknięte przez zdalnego hosta.
    - Source: System
    - Stack trace:
        at System.Net.ConnectStream.Read(Byte[] buffer, Int32 offset, Int32 size)
        at System.Deployment.Application.SystemNetDownloader.DownloadSingleFile(DownloadQueueItem next)
    --- Inner Exception ---
    System.Net.Sockets.SocketException
    - Istniejące połączenie zostało gwałtownie zamknięte przez zdalnego hosta
    - Source: System
    - Stack trace:
        at System.Net.Sockets.Socket.Receive(Byte[] buffer, Int32 offset, Int32 size, SocketFlags socketFlags)
        at System.Net.Sockets.NetworkStream.Read(Byte[] buffer, Int32 offset, Int32 size)

Конечно, я заменил реальный IP на Xs.
Только после того, как он обновился должным образом. Я использую WAMP в качестве HTTP-сервера. Я некоторое время гуглил, но ничего полезного не нашел.

Спасибо


person Joe    schedule 28.11.2011    source источник


Ответы (1)


Я знаю, что это старый вопрос, но сегодня у меня возникла эта проблема, и оказалось, что брандмауэр клиента блокирует загрузку двоичных файлов с сервера ClickOnce. Мы добавили исключение, и оно сработало нормально.

person Fergal Moran    schedule 12.04.2013
comment
Я совершенно забыл об этом вопросе, признаюсь. То, что вы написали, может быть причиной, но на этот раз это не так. Я обнаружил, что Apache закрывал эти соединения, если было много новых соединений. До сих пор не выяснил, почему. - person Joe; 12.04.2013