ClickOnce Application Error: Deployment and application do not have matching security zones

旧巷老猫 提交于 2019-12-10 12:31:37

问题


I am having trouble on ClickOnce Application with FireFox and Chrome in IE it works fine. the Detail Of exception is:

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.

Please Help Me out on this problem.


回答1:


If you're getting the error above, then it doesn't think you're signing the manifests. Be sure in the Signing tab that you have the checkbox checked, and a valid certificate selected. Also, are you publishing this in Full Trust or partial trust? If doing Partial Trust, change it to Full Trust, especially if doing internet install.




回答2:


Configure Visual Studio to include update location

This works for VS2008 projects at least:

Properties -> Publish -> Updates -> Set the update location to http://www.example.com/ApplicationName/

This will add a <deploymentProvider codebase=... /> subsection to the <deployment> section in your .application file. And this (at least) Chrome accepts.




回答3:


Downloading file breaks relative link

The problem is that the error message should have been ExampleAppName.exe.manifest could not be found.

If you open the ExampleAppName.application file that was downloaded you can see it probably points to a path like Application Files\ExampleAppName.exe.manifest and that file does not exist locally.

It still works in IE because IE starts the installer WITHOUT downloading the file. Then the manifest file does in fact exist in a relative path to where the ExampleAppName.application file is on the Internet.

Manually convert into absolute link

The fix is to change the ExampleAppName.application file and provide it an absolute path to where the AppName.exe.manifest exists on the Internet.




回答4:


You need to install the ClickOnce Extension for Chrome and enable it. Your application will run instantly without you clicking on the downloaded app.




回答5:


In Visual Studio 2013 I've verified that this error is caused by having the "Exclude deployment provider URL" checked in the Publish options of the project.

Project Properties > Publish > Options > Manifests > Un-tick "Exclude deployment provider URL"

As a extra precaution, make sure to provide your root URL where the application updates/install will live:

Project Properties > Publish > Updates > Update Location (Provide the root URL where this application will be found)


来源:https://stackoverflow.com/questions/9227105/clickonce-application-error-deployment-and-application-do-not-have-matching-sec

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!