Ошибка приложения ClickOnce: развертывание и приложение не имеют соответствующих зон безопасности - PullRequest
14 голосов
/ 10 февраля 2012

У меня проблемы с приложением ClickOnce с FireFox и Chrome в IE, оно работает нормально. Деталь исключения:

PLATFORM VERSION INFO
    Windows             : 6.1.7600.0 (Win32NT)
    Common Language Runtime     : 4.0.30319.239
    System.Deployment.dll       : 4.0.30319.1 (RTMRel.030319-0100)
    clr.dll             : 4.0.30319.239 (RTMGDR.030319-2300)
    dfdll.dll           : 4.0.30319.1 (RTMRel.030319-0100)
    dfshim.dll          : 4.0.31106.0 (Main.031106-0000)

SOURCES
    Deployment url          : file:///C:/Users/ibz/Downloads/MyApp.application

IDENTITIES
    Deployment Identity     : MyApp.application, Version=1.0.1.23, Culture=neutral, PublicKeyToken=0000000000000000, processorArchitecture=msil

APPLICATION SUMMARY
    * Online only application.
    * Trust url parameter is set.
ERROR SUMMARY
    Below is a summary of the errors, details of these errors are listed later in the log.
    * Activation of C:\Users\ibz\Downloads\MyApp.application resulted in exception. Following failure messages were detected:
        + Deployment and application do not have matching security zones.

COMPONENT STORE TRANSACTION FAILURE SUMMARY
    No transaction error was detected.

WARNINGS
    * The manifest for this application does not have a signature. Signature validation will be ignored.

OPERATION PROGRESS STATUS
    * [2/10/2012 4:53:18 PM] : Activation of C:\Users\ibz\Downloads\MyApp.application has started.
    * [2/10/2012 4:53:18 PM] : Processing of deployment manifest has successfully completed.
    * [2/10/2012 4:53:18 PM] : Installation of the application has started.

ERROR DETAILS
    Following errors were detected during this operation.
    * [2/10/2012 4:53:18 PM] System.Deployment.Application.InvalidDeploymentException (Zone)
        - Deployment and application do not have matching security zones.
        - Source: System.Deployment
        - Stack trace:
            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.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
    No transaction information is available.

Пожалуйста, помогите мне решить эту проблему.

Ответы [ 5 ]

1 голос
/ 11 июня 2013

Загрузка файла обрывается по относительной ссылке

Проблема в том, что сообщение об ошибке должно было быть ExampleAppName.exe.manifest could not be found.

Если вы откроете загруженный файл ExampleAppName.application, вы увидите, что он, вероятно, указывает на путь типа Application Files\ExampleAppName.exe.manifest, и этот файл не существует локально.

Это все еще работает в IE, потому что IE запускает установщик БЕЗ загрузки файла. Тогда файл манифеста действительно существует по относительному пути к файлу ExampleAppName.application в Интернете.

Конвертировать вручную в абсолютную ссылку

Исправление заключается в изменении файла ExampleAppName.application и предоставлении ему абсолютного пути к тому месту, где существует AppName.exe.manifest в Интернете.

1 голос
/ 13 июня 2013

Настройка Visual Studio для включения местоположения обновления

Это работает как минимум для проектов VS2008:

Свойства -> Опубликовать -> Обновления -> Установить местоположение обновления http://www.example.com/ApplicationName/

Это добавит подраздел <deploymentProvider codebase=... /> к разделу <deployment> в вашем файле .application. И этот (по крайней мере) Chrome принимает.

1 голос
/ 07 апреля 2013

Если вы получаете ошибку выше, значит, вы не подписываете манифесты.Убедитесь, что на вкладке «Подписание» установлен флажок и выбран правильный сертификат.Кроме того, вы публикуете это в режиме полного доверия или частичного доверия?Если вы используете Partial Trust, измените его на Full Trust, особенно если вы устанавливаете Интернет.

0 голосов
/ 17 октября 2014

В Visual Studio 2013 я убедился, что эта ошибка вызвана тем, что в параметрах публикации проекта установлен флажок «Исключить URL-адрес поставщика развертывания».указать корневой URL-адрес, по которому будут обновляться / устанавливать приложения:

Project Properties > Publish > Updates > Update Location (Provide the root URL where this application will be found)
0 голосов
/ 17 сентября 2014

Вам необходимо установить расширение ClickOnce для Chrome и включить его.Ваше приложение будет запущено мгновенно без нажатия на загруженное приложение.

...