Some users (but not all) are getting an error when they attempt to in开发者_JAVA技巧stall a ClickOnce application from a particular web server. This is the error they are getting:
PLATFORM VERSION INFO Windows : 5.1.2600.196608 (Win32NT) Common Language Runtime : 2.0.50727.3615 System.Deployment.dll : 2.0.50727.3053 (netfxsp.050727-3000) mscorwks.dll : 2.0.50727.3615 (GDR.050727-3600) dfdll.dll : 2.0.50727.3053 (netfxsp.050727-3000) dfshim.dll : 4.0.31106.0 (Main.031106-0000) SOURCES Deployment url : http://TheCorrectDeploymentURL/MyApp.application ERROR SUMMARY Below is a summary of the errors, details of these errors are listed later in the log. * Activation of http://TheCorrectDeploymentURL/MyApp.application resulted in exception. Following failure messages were detected: + Exception reading manifest from https://TheWrongServer.TheUrlForLoggingIntoTheVPN.com/url_3/welcome.cgi: the manifest may not be valid or the file could not be opened. + The 'link' start tag on line 14 does not match the end tag of 'noscript'. Line 15, position 3. COMPONENT STORE TRANSACTION FAILURE SUMMARY No transaction error was detected. WARNINGS There were no warnings during this operation. OPERATION PROGRESS STATUS * [8/24/2010 1:15:12 PM] : Activation of http://TheCorrectDeploymentURL.com/MyApp.application has started. ERROR DETAILS Following errors were detected during this operation. * [8/24/2010 1:15:37 PM] System.Deployment.Application.InvalidDeploymentException (ManifestParse) - Exception reading manifest from http://TheCorrectDeploymentURL.com/publish.htm
It is trying to read the manifest from the wrong location. The exception happens when ClickOnce thinks the web page for the VPN is the manifest for the application. Any idea on why Clickonce is trying to read the manifest from the VPN connection's URL rather than the server where the clickonce app is deployed?
Thanks!
The manifest location is defined in the .application file of the ClickOnce deployment (in the dependentAssembly tag). I'm not sure how you could get this mixed up if you generated this by defining it in the properties of your project. Also, once the manifest is generated, you cannot change it as hashcodes are stored in it to validate it.
I would check the .application file and verify the URL defined there is correct, and that the root of it matches the path to the .application file. In fact, usually the path to the manifest file is defined as a relative URL, which means that if the user was able to get to the .application file, there really is no reason they shouldn't be able to get to the manifest file.
UNLESS--do you perhaps have different security defined on the subfolder under the folder where the .application file is stored? Perhaps the web server is trying to get the user to log in when they don't have proper security access to the subfolder, but do have access to the root folder.
精彩评论