1

我有一个相同的 asp.net 应用程序托管在两台计算机上,即 Intranet 上的 PC1 和 PC3。.NET 控件使用对象标记托管。以下三个 url 在 PC1 上执行时可以正常工作:

http://pc1/test/test.aspx (另外两个 url 将 pc1 替换为 pc3 和 localhost)

IE v8 中的所有三个 url 都显示带有 .NET 控件的页面。

但是相同的 url 在 PC3 上不起作用。它们的控件显示有一个小的红色 X 符号。

在第二台机器上,Fiddler 视图显示 .NET dll 正在正确下载,但融合日志和 IEHost 日志没有显示任何内容。第一个机器融合日志和 IEHost 日志显示预期报告。

两台机器上的 IE 都设置为在受信任区域中包含上述所有三个 url。受信任区域的 .NET2 管理信任设置为 FullTrust。此外,我还为 pc1 和 pc3 创建了代码组以提供 FullTrust。

为什么第二台机器上的 IE 无法显示 .NET 控件?另外,为什么没有创建 IEHost 和融合日志?

4

3 回答 3

2

您可能知道,IE8 阻止在 Internet 区域中使用 .NET UserControls。 http://blogs.msdn.com/ieinternals/archive/2009/10/09/DotNet-UserControls-Do-Not-Load-in-IE8-Internet-Zone.aspx

也许控件不起作用的机器也为受信任区域设置了 URLAction2005?

您是否尝试将 .NET 控件的其他 IE 区域安全设置更改为“提示”以查看是否收到提示?您是否尝试过使用该机器加载其他人的 .NET 控件?那台机器是否可能有一个 .NET 插件将 .NET1.1 框架加载到 IE 进程中,从而阻止加载 2.0 框架?

于 2010-01-02T01:39:00.197 回答
2

感谢 Eric 和 Aaron 帮助我解决了这个问题。事实证明,安装在 IE 中的 McAcfee 站点顾问插件阻止了对 .NET 控件的访问。虽然,奇怪的是它会允许在窗体上使用 ActiveX 控件。在 .NET 控件访问 IEHost.dll 之前,McAfee 似乎拥有与 .NET 相关的权限检查。我禁用了 McAfee Site Advisor 来解决问题。

于 2010-01-04T17:13:26.117 回答
1

听起来您已经正确设置了所有内容。

您可能想要检查的一件事,这可能是在黑暗中拍摄的,是 PC3 上的 Internet 临时文件。确保程序集实际上正在那里下载。如果那里有很多旧文件,您可能会超出限制。

我会清除您的 Internet 临时文件,然后再试一次。此外,请检查您的 Internet 临时文件文件夹以查看它是否确实存在。如果它因此没有被保存,那就可以解释为什么融合日志什么也看不到。

于 2009-12-31T18:31:50.093 回答