2012-07-24 32 views
0

這是我在ClickOnce上的第三篇文章,但每篇文章都有自己的主題,所以我希望沒人介意。我迫切地將現有應用程序遷移到新服務器。我發佈了一個ClickOnce應用程序到服務器(僅用於在線使用,而不是用於安裝),如果我嘗試通過網絡瀏覽器執行它,我會收到一個消息框,提示「無法繼續,應用程序格式不正確。援助「,其詳細記錄如下所示; (我掩蓋了網址一些字符串由*,因爲它是私人信息)ClickOnce應用程序嘗試在錯誤的位置查找應用程序清單(奇怪的參數)

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,和一個ClickOnce應用程序發佈在http://**.**.***.173:10080/*****/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" /> 

回答

0

您是否嘗試過再次簽署應用程序和部署清單?

再次閱讀你的描述,我有點困惑。

首先你創建一個應用程序清單。

然後你簽名。

然後,您創建一個部署清單並明確地將其指向您的應用程序清單。

然後你也簽了這個。

(順便說一句:你每次改變東西都必須簽字)

相關問題