我有一个包含用户控件的已编译类库,我想将其添加到网页中。我正在向html页面添加一个对象标签,如下所示:
<OBJECT id="Main" classid="http://localhost/HelloWorld/Hello.World.dll#Hello.World.UserControl"></OBJECT>
但是,未显示控件。 DLL使它成为我的临时文件,我在网页上的对象框空白。我在我的临时Internet文件中收到一条错误消息,如下所示:
?FusionBindError!name = Hello.World.dll Hello.World.UserControl
我不知道如何进一步调试这个。我想知道它是否是一个命名空间问题?
[编辑]
以下错误在日志中结束:
Creating security manager
Microsoft.IE.Manager: Microsoft.IE.Manager: unique id lgth = 42
Microsoft.IE.SecureFactory: Create SecureFactory() with security information
Microsoft.IE.Manager: Created secure factory
Microsoft.IE.SecureFactory: Creating instance of the object in the correct domain
Microsoft.IE.SecureFactory: pUrl = http://localhost/HelloWorld/
Microsoft.IE.SecureFactory: id = 86474707A31303E2234383E24333E2135330000000
Microsoft.IE.SecureFactory: link =
Microsoft.IE.SecureFactory: licenses =
Microsoft.IE.SecureFactory: deployment manifest =
Microsoft.IE.SecureFactory: Security options = ZoneEvidence, SiteEvidence
Microsoft.IE.Manager: Url = http://localhost/HelloWorld/
Microsoft.IE.Manager: UrlGetPartW returned 0
Microsoft.IE.Manager: UrlGetPartW returned 80070057
Microsoft.IE.Manager: CodeBase = http://10.248.43.15
Microsoft.IE.Manager: Application = HelloWorld
Microsoft.IE.Manager: Found a codebase
Microsoft.IE.Manager: UrlCanonicalize returned 0
Microsoft.IE.SecureFactory: URL codeBase: http://localhost/
Microsoft.IE.SecureFactory: URL application: HelloWorld
Microsoft.IE.SecureFactory: Locating domain for http://localhost/
Microsoft.IE.IDKey: Created key
Microsoft.IE.Manager: The domain does not exist.
Microsoft.IE.IDKey: Created key
Microsoft.IE.Manager: The domain does not exist.
Microsoft.IE.SecureFactory: Need to create domain
Microsoft.IE.SecureFactory: Application base: http://localhost/
Microsoft.IE.SecureFactory: Private Bin Path: bin
Microsoft.IE.IDKey: Created key
Microsoft.IE.SecureFactory: Trying to create instance of type http://localhost/HelloWorld/Hello.World.dll#Hello.World.Main
Microsoft.IE.SecureFactory: System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation. ---> System.TypeInitializationException: The type initializer for 'ComponentFactory.Krypton.Toolkit.KryptonManager' threw an exception. ---> System.Security.SecurityException: Request for the permission of type 'System.Security.Permissions.UIPermission, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089' failed.
at System.Windows.Forms.ToolStripManager.set_Renderer(ToolStripRenderer value)
at ComponentFactory.Krypton.Toolkit.KryptonManager.b()
at ComponentFactory.Krypton.Toolkit.KryptonManager..cctor()
The action that failed was:
Demand
The type of the first permission that failed was:
System.Security.Permissions.UIPermission
The first permission that failed was:
<IPermission class="System.Security.Permissions.UIPermission, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"
version="1"
Window="AllWindows"/>
The demand was for:
<PermissionSet class="System.Security.PermissionSet"
version="1">
<IPermission class="System.Security.Permissions.UIPermission, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"
version="1"
Window="AllWindows"/>
</PermissionSet>
The granted set of the failing assembly was:
<PermissionSet class="System.Security.PermissionSet"
version="1">
<IPermission class="System.Security.Permissions.FileDialogPermission, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"
version="1"
Access="Open"/>
<IPermission class="System.Security.Permissions.IsolatedStorageFilePermission, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"
version="1"
Allowed="ApplicationIsolationByUser"
UserQuota="512000"/>
<IPermission class="System.Security.Permissions.SecurityPermission, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"
version="1"
Flags="Execution"/>
<IPermission class="System.Security.Permissions.UIPermission, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"
version="1"
Window="SafeTopLevelWindows"
Clipboard="OwnClipboard"/>
<IPermission class="System.Security.Permissions.SiteIdentityPermission, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"
version="1"
Site="localhost"/>
<IPermission class="System.Security.Permissions.UrlIdentityPermission, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"
version="1"
Url="http://localhost/HelloWorld/Hello.World.dll"/>
<IPermission class="System.Security.Permissions.ZoneIdentityPermission, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"
version="1"
Zone="Internet"/>
<IPermission class="System.Drawing.Printing.PrintingPermission, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"
version="1"
Level="SafePrinting"/>
<IPermission class="System.Net.WebPermission, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"
version="1">
<ConnectAccess>
<URI uri="(http|https)://localhost/*"/>
</ConnectAccess>
</IPermission>
</PermissionSet>
The assembly or AppDomain that failed was:
Hello.World, Version=1.0.3460.18220, Culture=neutral, PublicKeyToken=null
The method that caused the failure was:
Void InitializeComponent()
The Zone of the assembly that failed was:
Internet
The Url of the assembly that failed was:
http://localhost/HelloWorld/Hello.World.dll
--- End of inner exception stack trace ---
at ComponentFactory.Krypton.Toolkit.KryptonManager.get_CurrentGlobalPalette()
at ComponentFactory.Krypton.Toolkit.VisualPanel..ctor()
at ComponentFactory.Krypton.Toolkit.KryptonPanel..ctor()
at Hello.World.BottomPanel.InitializeComponent()
at Hello.World.BottomPanel..ctor()
at Hello.World.Main.InitializeComponent()
at Hello.World.Main..ctor()
--- End of inner exception stack trace ---
at System.RuntimeTypeHandle.CreateInstance(RuntimeType type, Boolean publicOnly, Boolean noCheck, Boolean& canBeCached, RuntimeMethodHandle& ctor, Boolean& bNeedSecurityCheck)
at System.RuntimeType.CreateInstanceSlow(Boolean publicOnly, Boolean fillCache)
at System.RuntimeType.CreateInstanceImpl(Boolean publicOnly, Boolean skipVisibilityChecks, Boolean fillCache)
at System.Activator.CreateInstance(Type type, Boolean nonPublic)
at System.RuntimeType.CreateInstanceImpl(BindingFlags bindingAttr, Binder binder, Object[] args, CultureInfo culture, Object[] activationAttributes)
at System.Activator.CreateInstance(Type type, BindingFlags bindingAttr, Binder binder, Object[] args, CultureInfo culture, Object[] activationAttributes)
at System.Activator.CreateComInstanceFrom(String assemblyName, String typeName, Byte[] hashValue, AssemblyHashAlgorithm hashAlgorithm)
at System.AppDomain.CreateComInstanceFrom(String assemblyFile, String typeName, Byte[] hashValue, AssemblyHashAlgorithm hashAlgorithm)
at System.AppDomain.CreateComInstanceFrom(String assemblyFile, String typeName, Byte[] hashValue, AssemblyHashAlgorithm hashAlgorithm)
at Microsoft.IE.SecureFactory.CreateInstanceWithSecurity2(Int32 dwFlags, Int32 dwZone, String wszSite, String wszId, String wszConfig, String wszLicenses, String wszDeploymentManifest)
Microsoft.IE.SecureFactory: LOG exception
Microsoft.IE.SecureFactory: Creating log entry ?FusionBindError!name=Hello.World.dll Hello.World.Main
Microsoft.IE.SecureFactory: Logging to file C:\Documents and Settings\----\Local Settings\Temporary Internet Files\Content.IE5\F84FN98R\CAMF3O8J.HTM
IEHost错误日志文件(CAMF308J.HTM)包含:
***** IEHOST Error Log (Monday, 22 June 2009 12:00) *****
URL: http://localhost/HelloWorld/Hello.World.dll
Zone: 3
Assembly Name: Hello.World.dll
Type Name: Hello.World.Main
----- Thrown Exception -----
System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation. ---> System.TypeInitializationException: The type initializer for 'ComponentFactory.Krypton.Toolkit.KryptonManager' threw an exception. ---> System.Security.SecurityException: Request for the permission of type 'System.Security.Permissions.UIPermission, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089' failed.
at System.Windows.Forms.ToolStripManager.set_Renderer(ToolStripRenderer value)
at ComponentFactory.Krypton.Toolkit.KryptonManager.b()
at ComponentFactory.Krypton.Toolkit.KryptonManager..cctor()
The action that failed was:
Demand
The type of the first permission that failed was:
System.Security.Permissions.UIPermission
The first permission that failed was:
The demand was for:
The granted set of the failing assembly was:
The assembly or AppDomain that failed was:
Hello.World, Version=1.0.3460.18220, Culture=neutral, PublicKeyToken=null
The method that caused the failure was:
Void InitializeComponent()
The Zone of the assembly that failed was:
Internet
The Url of the assembly that failed was:
http://localhost/HelloWorld/Hello.World.dll
--- End of inner exception stack trace ---
at ComponentFactory.Krypton.Toolkit.KryptonManager.get_CurrentGlobalPalette()
at ComponentFactory.Krypton.Toolkit.VisualPanel..ctor()
at ComponentFactory.Krypton.Toolkit.KryptonPanel..ctor()
at Hello.World.BottomPanel.InitializeComponent()
at Hello.World.BottomPanel..ctor()
at Hello.World.Main.InitializeComponent()
at Hello.World.Main..ctor()
--- End of inner exception stack trace ---
at System.RuntimeTypeHandle.CreateInstance(RuntimeType type, Boolean publicOnly, Boolean noCheck, Boolean& canBeCached, RuntimeMethodHandle& ctor, Boolean& bNeedSecurityCheck)
at System.RuntimeType.CreateInstanceSlow(Boolean publicOnly, Boolean fillCache)
at System.RuntimeType.CreateInstanceImpl(Boolean publicOnly, Boolean skipVisibilityChecks, Boolean fillCache)
at System.Activator.CreateInstance(Type type, Boolean nonPublic)
at System.RuntimeType.CreateInstanceImpl(BindingFlags bindingAttr, Binder binder, Object[] args, CultureInfo culture, Object[] activationAttributes)
at System.Activator.CreateInstance(Type type, BindingFlags bindingAttr, Binder binder, Object[] args, CultureInfo culture, Object[] activationAttributes)
at System.Activator.CreateComInstanceFrom(String assemblyName, String typeName, Byte[] hashValue, AssemblyHashAlgorithm hashAlgorithm)
at System.AppDomain.CreateComInstanceFrom(String assemblyFile, String typeName, Byte[] hashValue, AssemblyHashAlgorithm hashAlgorithm)
at System.AppDomain.CreateComInstanceFrom(String assemblyFile, String typeName, Byte[] hashValue, AssemblyHashAlgorithm hashAlgorithm)
at Microsoft.IE.SecureFactory.CreateInstanceWithSecurity2(Int32 dwFlags, Int32 dwZone, String wszSite, String wszId, String wszConfig, String wszLicenses, String wszDeploymentManifest)
答案 0 :(得分:1)
在该文件中是一个堆栈跟踪 - 如果你发布它,我可能会帮助。
此外,您需要完全信任.NET x.x配置控制面板中设置的站点(或使用CASPOL进行设置)。
以下是如何调试
答案 1 :(得分:0)
请注意:IE8会禁用Internet区域中的用户控件,因此,如果您计划在生产环境中部署此功能,请记住这一点。