ClickOnce应用程序尝试在错误的位置查找应用程序清单(奇怪的参数)

时间:2012-07-24 04:57:22

标签: asp.net visual-studio-2005 clickonce

这是我在ClickOnce上的第三篇文章,但每个帖子都有自己的主题,所以我希望没有人会介意这一点。我迫切地将现有应用程序迁移到新服务器。我将ClickOnce应用程序发布到服务器(仅限在线使用,不用于安装),如果我尝试通过Web浏览器执行它,我会收到一条消息框,说“无法继续。应用程序格式不正确。请联系应用程序供应商援助。“,详细日志包括以下内容; (我通过 * 屏蔽了URL中的一些字符串,因为它是私人信息)

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

SOURCES
Deployment url: http://**.**.***.173:10080/*****/ClickOnce/*********.application?comid=*****&userjpname=************&userfullname=************&canregist=True&canmanage=True&systemid=0

ERROR SUMMARY
Below is a summary of the errors, details of these errors are listed later in the log.
* Activation of http://**.**.***.173:10080/*****/ClickOnce/*********.application?comid=*****&userjpname=************&userfullname=************&canregist=True&canmanage=True&systemid=0 resulted in exception. Following failure messages were detected:
+ Exception reading manifest from http://**.**.***.173:10080/*****/ClickOnce/*********.application?comid=*****&userjpname=************&userfullname=************&canregist=True&canmanage=True&systemid=0: the manifest may not be valid or the file could not be opened.
+ Manifest XML signature is not valid.
+ The digital signature of the object did not verify.

COMPONENT STORE TRANSACTION FAILURE SUMMARY
No transaction error was detected.

WARNINGS
There were no warnings during this operation.

OPERATION PROGRESS STATUS
* [2012/07/24 13:16:39] : Activation of http://**.**.***.173:10080/*****/ClickOnce/*********.application?comid=*****&userjpname=************&userfullname=************&canregist=True&canmanage=True&systemid=0 has started.

ERROR DETAILS
Following errors were detected during this operation.
* [2012/07/24 13:16:39] System.Deployment.Application.InvalidDeploymentException (ManifestParse)
- Exception reading manifest from http://**.**.***.173:10080/*****/ClickOnce/*********.application?comid=*****&userjpname=************&userfullname=************&canregist=True&canmanage=True&systemid=0: the manifest may not be valid or the file could not be opened.
- Source: System.Deployment
- Stack trace:
at System.Deployment.Application.ManifestReader.FromDocument(String localPath, ManifestType manifestType, Uri sourceUri)
at System.Deployment.Application.DownloadManager.DownloadDeploymentManifestDirectBypass(SubscriptionStore subStore, Uri& sourceUri, TempFile& tempFile, SubscriptionState& subState, IDownloadNotification notification, DownloadOptions options, ServerInformation& serverInformation)
at System.Deployment.Application.DownloadManager.DownloadDeploymentManifestBypass(SubscriptionStore subStore, Uri& sourceUri, TempFile& tempFile, SubscriptionState& subState, IDownloadNotification notification, DownloadOptions options)
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.Deployment.Application.InvalidDeploymentException (SignatureValidation)
- Manifest XML signature is not valid.
- Source: System.Deployment
- Stack trace:
at System.Deployment.Application.Manifest.AssemblyManifest.ValidateSignature(Stream s)
at System.Deployment.Application.ManifestReader.FromDocument(String localPath, ManifestType manifestType, Uri sourceUri)
--- Inner Exception ---
System.Security.Cryptography.CryptographicException
- The digital signature of the object did not verify.

- Source: System.Deployment
- Stack trace:
at System.Deployment.Internal.CodeSigning.SignedCmiManifest.Verify(CmiManifestVerifyFlags verifyFlags)
at System.Deployment.Application.Manifest.AssemblyManifest.ValidateSignature(Stream s)

COMPONENT STORE TRANSACTION DETAILS
No transaction information is available.

我的服务器地址为http://**.**.***.173:10080,并且http://**.**.***.173:10080/*****/ClickOnce文件夹中发布了一个clickonce应用程序。

我假设它试图找到一个应用程序清单文件(.manifest),其中包含这些奇怪的参数(或查询字符串?),例如comid,userjpname,userfullname,canregist,canmanage,True和systemid,因此它返回了一个错误。

在我的部署清单文件中,应用程序清单文件的位置指定如下。不知道这些参数来自哪里。

<dependentAssembly 
    dependencyType="install"  
    codebase="MYAPPNAME_9_9_9_99\MYAPPNAME.exe.manifest"
    size="8532">
<assemblyIdentity
    name="MYAPPNAME.exe"
    version="1.0.1.43"
    publicKeyToken="*************"
    language="neutral"
    processorArchitecture="msil"
    type="win32" />

1 个答案:

答案 0 :(得分:0)

您是否尝试再次签署应用程序和部署清单?

再次阅读你的描述,我有点困惑。

首先创建一个应用程序清单。

然后你签名。

然后创建部署清单并将其明确指向应用程序清单。

然后你也签了这个。

(顺便说一句:每次改变时你都要做签名部分。)