views:

30

answers:

1

Some users (but not all) are getting an error when they attempt to install 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!

A: 

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.

Russ
Thanks for the quick response! No URL exists in the dependentAssembly tag, but I do see a codebase attribute that points to the correct relative location of the application files. Also, I am using Visual Studio to publish and haven't edited anything. The security settings are the same on the root and subfolder.
Holy Christ
It looks like by the error message that the web server is spitting up the login (or welcome) screen when the manifest is requested. Check also the web.config of the web server to see if maybe certain files are excluded or specifically included in security--perhaps the .application file is specifically excluded from security, but all other locations, which for a ClickOnce app can't be specified, are included.
Russ
The welcome.cgi above is the URL for the VPN's login screen (on a completely different server). The web.config is very basic. The only security information is to not use impersonation. Also note, this occurs only for certain users.
Holy Christ