(是的,我在一个大型企业环境中工作,这就是为什么我要谈论所有这些倒退技术。不,我目前没有选择在这十年的技术中彻底改变它并重写它。)
我们有一个应用程序需要在 .NET 中完成一些客户端工作,但需要从 Web 应用程序启动。开发人员(在 2004 年工作)选择这样做的方式是让网站输出一个指向服务器上 .NET DLL 的标记,并在该 DLL 内启动一个 WinForms UserControl。
在网页中呈现的 HTML 如下所示:
<OBJECT id=launcher
classid=http://server.com/Path/To/The.dll#Full.Namespace.Path.To.TheUserControl
width=640 height=300 VIEWASTEXT>
<PARAM NAME="SomeParam" VALUE="SomeParamValue">
</OBJECT>
这在生产中工作了很多年。但是现在,当我们的开发人员安装 VS2012 时,它就停止工作了。在 2012 年安装之后,以前他们会看到用户控件呈现在 IE 页面内的一个框中,现在他们看到一个大 X(就像一个破碎的图像)。没有给出关于可能是什么问题的其他反馈。请注意,无论开发人员在本地运行代码,还是在为用户部署代码的服务器上运行代码(并且在没有 VS2012 的机器上运行良好),这都是正确的。
我什至无法诊断这个问题。是否存在影响 Internet Explorer 中 ActiveX 控件执行的 VS2012 安装(或也安装的 .NET 4.5)的任何已知问题(如果重要,我们使用 IE 8)?我应该如何去找出问题所在?