Tuesday, March 1, 2011

Why did my <OBJECT> fail to load?

I have an HTML document that is using to embed a control. In some cases, IE fails to load the control in the tag and loads my alternative text.

Only problem... I don't know why it is failing. It doesn't show up as an error in the exclamation in the lower-left. I overrode the window.onerror method, but that didn't get fired. I see nothing in the event log.

How do I get any type of feedback to figure out what my problem is? Can IE go into a "verbose mode"? Is there some magic error log somewhere telling me why my object isn't loading into IE?

Thanks, Brian

From stackoverflow
  • Often a failure in the object tag won't show up as an IE error, since the object is running from its own plugin codebase, not the browser's interpreter.

    Are you loading this file locally? Or is it a hosted page? IE has different permissions for execution of objects. What is the type of the object? A code snippet would also help.

    You could also use something like Charles Web Debugging proxy to see if the browser is even attempting to connect to the filename. If it's not, you know it's a problem with the code, but if it is making the call, you might be able to see what's returned in the HTTP headers - a server error (404, 500?), blankness, etc.

    Brian Genisio : In this case, the object is installed. It is a managed control. When I run from the intranet, it works. When I run from the internet, it fails. The control is never being loaded. I understand the areas where this might be failing (CAS or IE constraints). How to enable logging in IE?
  • Start looking at your IE zone security settings.

    Compare Local Intranet to Internet. Most likely your security settings are preventing the object from running.

    You might also turn off any type of AV program you are running.

  • I guess I phrased my question poorly. I am really trying to understand how to get IE to give me more diagnostic info... I want IE to tell me what the problem is, instead of sniffing around through trial and error.

    Any ideas?

  • It sounds like what you are looking for is IEHost logging. Taken verbatim from the link below, the short form of how to activate it is:

    1. Click Start, click Run, type regedit, and then click OK.
    2. Locate and click the following registry key: *HKEY_LOCAL_MACHINE\Software\Microsoft.NETFramework*
    3. Add a DWORD value named DebugIEHost to this key; assign it any non-zero value.
    4. Add a string value named IEHostLogFile. Assign it the full path (including the file name) of the file in which you want to record the debug trace (for example, C:\Temp\IEDebug.log).

    The full details can be found in KB313892 from Microsoft.

    ADDED: One other thing to check for as a general rule is whether the "Run components (not) signed with Authenticode" is enabled in the zone's security settings for the browser. If this is disabled, then the IE Host DLL does not get loaded and the above steps will not create a log for it. Given that your original question mentions that there is no indication that something else was supposed to happen, I wonder if this is the case.

    Brian Genisio : Interesting... this is a great KB article, though it doesn't actually write the log file for me (either way, when the control loads OR fails, I get no output).
    Brian Genisio : Thinking this is probably the best answer I can get, even if it doesn't work. Thanks!

0 comments:

Post a Comment