locked
PresentationHost crashing on any XBAP RRS feed

  • Question

  • We have a client PC on which PresentationHost.exe crashes upon launching any XBAP application.

    For example: http://weathernews.com/wpfglobal.xbap

    The client pc has McAfee anti-virus installed. We suspect that this is the cause, but cannot disable the program to test.

    The XBAP deployment error is listed below:

    --------------------------

    PLATFORM VERSION INFO
     Windows    : 5.1.2600.196608 (Win32NT)
     Common Language Runtime  : 2.0.50727.3603
     System.Deployment.dll   : 2.0.50727.3053 (netfxsp.050727-3000)
     mscorwks.dll    : 2.0.50727.3603 (GDR.050727-3600)
     dfshim.dll    : 2.0.50727.3053 (netfxsp.050727-3000)

    SOURCES
     Deployment url   : file:///C:/Documents%20and%20Settings/id080426/Local%20Settings/Temporary%20Internet%20Files/Content.IE5/GN30HU1G/wpfglobal%5B1%5D.xbap

    IDENTITIES
     Deployment Identity  : wpfglobal.application, Version=1.1.10.0, Culture=neutral, PublicKeyToken=703b1573bd1c2389, processorArchitecture=msil

    APPLICATION SUMMARY
     * Online only application.

    ERROR SUMMARY
     Below is a summary of the errors, details of these errors are listed later in the log.
     * An exception occurred while downloading the manifest. Following failure messages were detected:
      + Downloading file:///C:/Documents and Settings/id080426/Local Settings/Temporary Internet Files/Content.IE5/GN30HU1G/wpfglobal.exe.manifest did not succeed.
      + Could not find file 'C:\Documents and Settings\id080426\Local Settings\Temporary Internet Files\Content.IE5\GN30HU1G\wpfglobal.exe.manifest'.
      + Could not find file 'C:\Documents and Settings\id080426\Local Settings\Temporary Internet Files\Content.IE5\GN30HU1G\wpfglobal.exe.manifest'.
      + Could not find file 'C:\Documents and Settings\id080426\Local Settings\Temporary Internet Files\Content.IE5\GN30HU1G\wpfglobal.exe.manifest'.

    COMPONENT STORE TRANSACTION FAILURE SUMMARY
     No transaction error was detected.

    WARNINGS
     There were no warnings during this operation.

    OPERATION PROGRESS STATUS
     No phase information is available.

    ERROR DETAILS
     Following errors were detected during this operation.
     * [17/11/2009 10:34:59] System.Deployment.Application.DeploymentDownloadException (Unknown subtype)
      - Downloading file:///C:/Documents and Settings/id080426/Local Settings/Temporary Internet Files/Content.IE5/GN30HU1G/wpfglobal.exe.manifest did not succeed.
      - Source: System.Deployment
      - Stack trace:
       at System.Deployment.Application.SystemNetDownloader.DownloadSingleFile(DownloadQueueItem next)
       at System.Deployment.Application.SystemNetDownloader.DownloadAllFiles()
       at System.Deployment.Application.FileDownloader.Download(SubscriptionState subState)
       at System.Deployment.Application.DownloadManager.DownloadManifestAsRawFile(Uri& sourceUri, String targetPath, IDownloadNotification notification, DownloadOptions options, ServerInformation& serverInformation)
       at System.Deployment.Application.DownloadManager.DownloadManifest(Uri& sourceUri, String targetPath, IDownloadNotification notification, DownloadOptions options, ManifestType manifestType, ServerInformation& serverInformation)
       at System.Deployment.Application.DownloadManager.DownloadApplicationManifest(AssemblyManifest deploymentManifest, String targetDir, Uri deploymentUri, IDownloadNotification notification, DownloadOptions options, Uri& appSourceUri, String& appManifestPath)
       at System.Deployment.Application.DeploymentManager.BindCore(Boolean blocking, TempFile& tempDeploy, TempDirectory& tempAppDir, FileStream& refTransaction, String& productName)
       at System.Deployment.Application.DeploymentManager.BindAsyncWorker()
      --- Inner Exception ---
      System.Net.WebException
      - Could not find file 'C:\Documents and Settings\id080426\Local Settings\Temporary Internet Files\Content.IE5\GN30HU1G\wpfglobal.exe.manifest'.
      - Source: System
      - Stack trace:
       at System.Net.FileWebRequest.EndGetResponse(IAsyncResult asyncResult)
       at System.Net.FileWebRequest.GetResponse()
       at System.Deployment.Application.SystemNetDownloader.DownloadSingleFile(DownloadQueueItem next)
      --- Inner Exception ---
      System.Net.WebException
      - Could not find file 'C:\Documents and Settings\id080426\Local Settings\Temporary Internet Files\Content.IE5\GN30HU1G\wpfglobal.exe.manifest'.
      - Source: System
      - Stack trace:
       at System.Net.FileWebResponse..ctor(FileWebRequest request, Uri uri, FileAccess access, Boolean asyncHint)
       at System.Net.FileWebRequest.GetResponseCallback(Object state)
      --- Inner Exception ---
      System.IO.FileNotFoundException
      - Could not find file 'C:\Documents and Settings\id080426\Local Settings\Temporary Internet Files\Content.IE5\GN30HU1G\wpfglobal.exe.manifest'.
      - Source: mscorlib
      - Stack trace:
       at System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath)
       at System.IO.FileStream.Init(String path, FileMode mode, FileAccess access, Int32 rights, Boolean useRights, FileShare share, Int32 bufferSize, FileOptions options, SECURITY_ATTRIBUTES secAttrs, String msgPath, Boolean bFromProxy)
       at System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access, FileShare share, Int32 bufferSize, FileOptions options, String msgPath, Boolean bFromProxy)
       at System.Net.FileWebStream..ctor(FileWebRequest request, String path, FileMode mode, FileAccess access, FileShare sharing, Int32 length, Boolean async)
       at System.Net.FileWebResponse..ctor(FileWebRequest request, Uri uri, FileAccess access, Boolean asyncHint)

    COMPONENT STORE TRANSACTION DETAILS
     No transaction information is available.

    ---------------------------------------


    It's odd that the deployment URL lists a local path instead of http://.../ as well

    Any ideas?

    Tuesday, November 17, 2009 11:00 AM

Answers

  • Hi Wouter,

       You are correct, this is a side-effect of McAfee anti-virus' "Access Protection" feature.  It's also something that WPF can't work around by itself, so you need to either tell McAfee to add exemptions for two specific .NET executables or not run ClickOnce apps on the machine.

    If you browse the McAfee activity logs, you will see something like this:

    <Date> <Time> Blocked by Access Protection rule  <User> C:\Windows\System32\PresentationHost.exe C:\Users\<user>l\AppData\Local\Microsoft\Windows\Temporary Internet Files\Content.IE5\index.dat Anti-virus Maximum Protection:Protect cached files from password and email address stealers Action blocked : Read ...

    Unfortunately, in order to work all CLickOnce apps need to access the Deployment and Application manifests more than once, which is done using the IE Temporary Internet Files cache. 

    Since they are signed by Microsoft and will not steal your data, you can add exemptions for dfsvc.exe (for .application ) and PresentationHost.exe (for .Xbap) if you want to leave McAfee turned on and you should be able to run basic apps (although certain features may still be blocked).

    Hope this helps,
    Matt
    SDET : Deployment/Hosting
    Wednesday, November 18, 2009 1:16 AM

All replies

  • Hi Wouter,

       You are correct, this is a side-effect of McAfee anti-virus' "Access Protection" feature.  It's also something that WPF can't work around by itself, so you need to either tell McAfee to add exemptions for two specific .NET executables or not run ClickOnce apps on the machine.

    If you browse the McAfee activity logs, you will see something like this:

    <Date> <Time> Blocked by Access Protection rule  <User> C:\Windows\System32\PresentationHost.exe C:\Users\<user>l\AppData\Local\Microsoft\Windows\Temporary Internet Files\Content.IE5\index.dat Anti-virus Maximum Protection:Protect cached files from password and email address stealers Action blocked : Read ...

    Unfortunately, in order to work all CLickOnce apps need to access the Deployment and Application manifests more than once, which is done using the IE Temporary Internet Files cache. 

    Since they are signed by Microsoft and will not steal your data, you can add exemptions for dfsvc.exe (for .application ) and PresentationHost.exe (for .Xbap) if you want to leave McAfee turned on and you should be able to run basic apps (although certain features may still be blocked).

    Hope this helps,
    Matt
    SDET : Deployment/Hosting
    Wednesday, November 18, 2009 1:16 AM
  • Hi Mark,

    Thanks for your answer. I'm currently still reluctant to mark your reply as "answer", as we've not been able to verify this yet. We don't have direct access to the client PC, and McAfee cannot be disabled to verify. Also, we couldn't see anything in the McAfee activity logs we received.

    The error occurs on multiple PCs within the same company, while others don't have the problem. They all have McAfee installed, even the ones that don't have problems. I don't have detailed information on version differences though.

    (I still suspect McAfee)

    Greetings,
    Wouter
    Monday, November 23, 2009 3:28 PM
  • Hi Wouter,

        One more thing you can do to figure out whether McAfee is the problem is to run a tool like Process Monitor while attempting to run an .xbap, and filtering by PresentationHost.exe and looking for file actions with "Access denied".   If you see it failing to access the temporary internet files store, that's your "smoking gun"; the same files PresentationHost.exe is denied will show up in the McAfee logs if this is the case.

    -Matt
    SDET : Deployment/Hosting
    Monday, November 23, 2009 6:12 PM
  • Hi again,

    I had access to the machine which suffers from this issue today.

    Unfortunately, in the McAfee activity logs, there was no mention of anything being blocked. Also, with process monitor, there were no "access denied" errors for PresentationHost.exe and temporary internet files...

    Any further ideas on what could be the issue?

    Wouter
    Tuesday, March 2, 2010 2:37 PM