Assembly & Trust level
-
Hi
Ich versuche verzweifelt SQLite zu benutzen. Lokal geht es - am Server natürlich nicht. Habe folgendes in die web.config reingehaut:
<system.data> <DbProviderFactories> <remove invariant="System.Data.SQLite"/> <add name="SQLite Data Provider" invariant="System.Data.SQLite" description=".Net Framework Data Provider for SQLite" type="System.Data.SQLite.SQLiteFactory, System.Data.SQLite, Version=1.0.60.0, Culture=neutral, PublicKeyToken=db937bc2d44ff139"/> </DbProviderFactories> </system.data>
Bekomme da den Policy Fehler:
[PolicyException: Erforderliche Berechtigungen wurden nicht erhalten.] System.Security.SecurityManager.ResolvePolicy(Evidence evidence, PermissionSet reqdPset, PermissionSet optPset, PermissionSet denyPset, PermissionSet& denied, Boolean checkExecutionPermission) +2770052 System.Security.SecurityManager.ResolvePolicy(Evidence evidence, PermissionSet reqdPset, PermissionSet optPset, PermissionSet denyPset, PermissionSet& denied, Int32& securitySpecialFlags, Boolean checkExecutionPermission) +57 ...
Erhöhe ich das Trustlevel bekomme ich:
Beschreibung: Fehler beim Verarbeiten einer Konfigurationsdatei, die für diese Anforderung erforderlich ist. Überprüfen Sie die unten angegebenen Fehlerinformationen, und ändern Sie die Konfigurationsdatei entsprechend. Parserfehlermeldung: Dieser Konfigurationsabschnitt kann für diesen Pfad nicht verwendet werden. Dies tritt auf, wenn der Siteadministrator den Zugriff auf diesen Abschnitt mithilfe von <location allowOverride="false"> über eine geerbte Konfigurationsdatei gesperrt hat.
Habe in <system.web> <trust level="High" /> eingefügt.
PublicKeyToken stimmt, DLL Datei ist in einem Bin Ordner, Lokal geht es
Weiß jemand Rat?
mfg
-
Hallo,
[...]den Zugriff auf diesen Abschnitt mithilfe von <location allowOverride="false"> über eine geerbte Konfigurationsdatei gesperrt hat.
Je nach Webserver gibt es unterschiedliche Konfigurationen. Im Apache wäre es die httpd.conf in der man die Berechtigungen setzen muss.
<Directory "C:/xampp/htdocs">
# It can be "All", "None", or any combination of the keywords:
# Options FileInfo AuthConfig LimitAllowOverride All
</Directory>
Also schau dir nochmal die Konfiguration des Servers an.
LG, Micha
-
Also den Truslevel kennen uich nur ein WSS bzw. MOSS.
Bei normalen ASPX wird da nichts aktiviert.
Solltest mal sagen was du genau machst. Hast du webparts drin etc.
-
Hallo
Webserver kann ich nichts machen - SharedHosting
Also alles noch mal genau:
* Habe System.Data.SQLite.DLL nach / und auch testweise nach /Bin/ kopiert
* Hab unter <configuration> die angefürhte <system.data> eingefügt
* type wurde kontrolliert - von Dokumentation kopiert
* Danach ein normales using von SQLite - am "Testserver" von Visual Studio rennt alles ohne Probleme - kann auf die Datenbank zugreifen
* Am server der besagte FehlerHier noch mal die ganze Log (der letzte Teil ist uninteressant imo) - aber das lustige ist der 2te. Absatz => File not found & zu wenig Rechte!?
[PolicyException: Erforderliche Berechtigungen wurden nicht erhalten.] System.Security.SecurityManager.ResolvePolicy(Evidence evidence, PermissionSet reqdPset, PermissionSet optPset, PermissionSet denyPset, PermissionSet& denied, Boolean checkExecutionPermission) +2770052 System.Security.SecurityManager.ResolvePolicy(Evidence evidence, PermissionSet reqdPset, PermissionSet optPset, PermissionSet denyPset, PermissionSet& denied, Int32& securitySpecialFlags, Boolean checkExecutionPermission) +57 [FileLoadException: Die Datei oder Assembly System.Data.SQLite, Version=1.0.60.0, Culture=neutral, PublicKeyToken=db937bc2d44ff139 oder eine Abhängigkeit davon wurde nicht gefunden. Die minimale Berechtigung konnte nicht erteilt werden. (Ausnahme von HRESULT: 0x80131417)] System.Reflection.Assembly._nLoad(AssemblyName fileName, String codeBase, Evidence assemblySecurity, Assembly locationHint, StackCrawlMark& stackMark, Boolean throwOnFileNotFound, Boolean forIntrospection) +0 System.Reflection.Assembly.nLoad(AssemblyName fileName, String codeBase, Evidence assemblySecurity, Assembly locationHint, StackCrawlMark& stackMark, Boolean throwOnFileNotFound, Boolean forIntrospection) +54 System.Reflection.Assembly.InternalLoad(AssemblyName assemblyRef, Evidence assemblySecurity, StackCrawlMark& stackMark, Boolean forIntrospection) +211 System.Reflection.Assembly.InternalLoad(String assemblyString, Evidence assemblySecurity, StackCrawlMark& stackMark, Boolean forIntrospection) +141 System.Reflection.Assembly.Load(String assemblyString) +25 System.Web.Configuration.CompilationSection.LoadAssemblyHelper(String assemblyName, Boolean starDirective) +32
Mich ich da einen Kapitalfehler?
-
Mal ein andere Frage. Warum verwendest Du SQLLITE?
Wenn du schon ASPNET hast dann kannst du auch SQL COMPACT verwenden.
-
Najo - da muss man ja einwenig reinhacken damit das mit ASP.NET geht. Problem bei SQLite ist, dass es 80% C/C++ ist und das bei middle Trust nicht erlaubt ist - da ist nur managed erlaubt.
Najo - Pech gehabt
txh so far