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

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

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

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

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

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

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

有帮助吗?

解决方案

您可能知道,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 框架?

其他提示

由于这两个埃里克和亚伦帮助我弄清楚这个问题。原来,McAcfee网站顾问附加安装在IE被阻止访问.NET控件。虽然,它奇怪的是,它允许在窗体上的ActiveX控件。看来,迈克菲做它自己的.NET相关的权限检查之前,.NET控件还未获得IEHost.dll。我禁用迈克菲网站顾问来解决这个问题。

这听起来像你正确拥有的一切设置。

您可能要检查,这可能是一个在黑暗中拍摄的一件事,是PC3您的Internet临时文件。确保组件实际上是被下载那里。如果你有很多的旧文件有可能你的极限结束。

我要清除Internet临时文件,然后再试一次。此外,检查您的Internet临时文件夹,看它是否是真正在那里。如果它没有被因为这个保存的,这可以解释为什么融合日志没有看到任何东西。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top