Frage

Ich habe eine kompilierte Klassenbibliothek mit einer Benutzersteuerung und ich möchte sie einer Webseite hinzufügen. Ich füge der HTML -Seite ein Objekt -Tag hinzu, die aussieht:

 <OBJECT id="Main" classid="http://localhost/HelloWorld/Hello.World.dll#Hello.World.UserControl"></OBJECT>

Die Kontrolle wird jedoch nicht angezeigt. Die DLL schafft es zu meinen TEMP -Dateien und ich erhalte das Objektbox auf der Webseite leer. Ich erhalte eine Fehlermeldung in meinen temporären Internetdateien, die aussieht:

?

Ich weiß nicht, wie ich das noch weiter debuggen soll. Ich frage mich, ob es sich um ein Namespacing -Problem handelt.

Bearbeiten

Der folgende Fehler landete im Protokoll:

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

Die IEHOST -Fehlerprotokolldatei (CAMF308J.htm) enthielt:

*****   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)
War es hilfreich?

Lösung

In dieser Datei befindet sich eine Stapelverfolgung - wenn Sie sie veröffentlichen, kann ich möglicherweise helfen.

Außerdem müssen Sie mit der Site in Ihrem .NET XX-Konfigurationsbedienfeld voll vertraut sein (oder Caspol verwenden, um sie festzulegen).

Hier erfahren Sie, wie man debugug

  1. Verwenden Sie Fiddler (Google, Download und Ausführen).
  2. Lade die Seite neu
  3. Wird die Kontrolle heruntergeladen? Erhalten Sie ein HTTP 500-Wenn ja, schalten Sie "Skripte und ausführbare" im Verzeichnis in IIS aus-IIS glaubt, dass dies eine ISAPI-DLL ist und es ausführt, wenn Sie alle ausführbare Ausführungen ausführen können
  4. Bekommst du eine Fusion -Bindung (du tust) - was ist drin - sollte eine Stapelspur sein - hast du es geworfen? Kannst du reparieren?
  5. Haben Sie mit der Website eine vollständige Vertraulichkeit?

Andere Tipps

Bitte beachten Sie: IE8 deaktiviert Benutzersteuerung in der Internetzone. Denken Sie also daran, wenn Sie dies in einer Produktionsumgebung bereitstellen möchten.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top