1
votes

I have a problem with an ActiveX control in a web application that I have upgraded from .NET 2.0 to .NET 4.0 runtime.

The situation is as follows:

  1. The GUI of the application is essentially unchanged from the previous version.
  2. The old and the new version are running under the same website under two different virtual directory applications.
  3. Users on the OLD application can see the ActiveX signature pad control.
  4. Users on the NEW application cannot see that ActiveX signature control (see a red x instead)
  5. The ActiveX control HTML returned to the browser (Internet Explorer) on both applications is exactly the same.
  6. Users who cannot see the ActiveX control on the new application are trying to access the new application from the same computer and login as they are when they access the dol application.
  7. The developer (me) can see the ActiveX control on both the old and the new application from the development PC but not from the production PC where I get the same result as the end users.
  8. Adding the site to the trusted domain does not solve the issue.

My question is this: What could be going wrong where the exact same ActiveX control is available to users at one URL but not at another URL when both URL are under the same domain, serverd by the same website and differentiated by being different Virtual apps with differing .NET version?

  • Could I be missing libraries that are sent to browser?
  • Am I missing a security setting on the browser.
  • Am I missing supporting libraries or other objects needed to support the ActiveX control?

I hope I have given everything that is needed to solve this. If not please ask. ActiveX controls and related issues are not my forte and this problem has been plaguing me for weeks and I have searched the net over for a solution. I appreciate any help, thank you in advance.

ADDED:

Here is the object tag from the old app which works.

<OBJECT classid=clsid:69A40DA3-4D42-11D0-86B0-0000C025864A height=75 id=SigPlus1 name=SigPlus1 style="HEIGHT:148px;WIDTH:250px;LEFT:0px;TOP:0px; background-color:#efefef;"> <PARAM NAME="_Version" VALUE="131095"> <PARAM NAME="_ExtentX" VALUE="4842"> <PARAM NAME="_ExtentY" VALUE="1323"> <PARAM NAME="_StockProps" VALUE="0"> </OBJECT>

And the object tag from the updated application which works only for my development computer:

<object classid="clsid:69A40DA3-4D42-11D0-86B0-0000C025864A" height="75" id="SigPlus1" name="SigPlus1" style="height:148px;width:250px;left:0px;top:0px;background-color:#efefef;"> <param name="_Version" value="131095"/> <param name="_ExtentX" value="4842"/> <param name="_ExtentY" value="1323"/> <param name="_StockProps" value="0"/> </object>

1
It would help if you posted the relevant HTML fragments with <object> from view-source for both working and non-working cases.noseratio
the HTML Object tags are of no consequence really as they are exactly the same in both versions. The UI did not change only the version of .NET, the URL, and the application folder.Andrew
Are <object>s still the same when you view them via IE DevTools (F12)? Does it affect all IE version? Do you package the ActiveX as .CAB file and reference it from the <object> tag, or have a manual installer?noseratio
I see your point - here is the object tag.Andrew
Now that you mention it the object tag looks to require a manual install - but the old object tag works on the same PC the new object tag does not.Andrew

1 Answers

1
votes

After examining the code to the old application it turned out that the ActiveX controls were hidden. When I set the layer to 'show' the controls I found that not only were the controls missing but the JavaScript that accessed them was also broken.

I should never have trusted the original application as correct.

It turns out that the production PC's used to access the web application were replaced several months ago and the users did not know the application was broken - scary. The ActiveX software was never installed on the new client PC's and this was what accounted for the missing ActiveX controls.

Installing software on the client PC's corrected the problem.