Domanda

Sto usando la versione client / server incorporata di db4o (ho chiamato OpenServer () invece del metodo OpenFile ()) in modo da poter ospitare un sito Web asp.net che consentirà a più utenti di leggere e scrivere contemporaneamente nel database. L'unico problema è che il webhost che utilizziamo è un ambiente di attendibilità media, quindi viene generato un errore che indica che l'assembly non supporta i chiamanti parzialmente attendibili ...

Mi chiedo se qualcuno ha qualche suggerimento su come farlo funzionare. Grazie!

:: AGGIORNAMENTO ::

Ho ricompilato la db4o dll con l'attributo [AllowPartiallyTrustedCallers] e ora visualizzo il seguente errore specifico:

System.TypeInitializationException non è stata gestita dal codice utente   Message = & Quot; L'inizializzatore del tipo per 'DataObjecten.db4oManager' ha generato un'eccezione. & Quot;   TypeName = quot &; & DataObjecten.db4oManager quot;   InnerException: System.Security.SecurityException        Messaggio = & Quot; Richiesta di autorizzazione del tipo 'System.Security.Permissions.SecurityPermission, mscorlib, Version = 2.0.0.0, Culture = neutral, PublicKeyToken = b77a5c561934e089' non riuscita. & Quot;        Fonte = quot &; & Db4objects.Db4o quot;        StackTrace:             at Db4objects.Db4o.Internal.Platform4.AddShutDownHook (contenitore PartialObjectContainer)             at Db4objects.Db4o.Internal.PartialObjectContainer.Initialize1 (IConfiguration config)             at Db4objects.Db4o.Internal.PartialObjectContainer.Open ()             at Db4objects.Db4o.Internal.IoAdaptedObjectContainer..ctor (configurazione IConfiguration, String fileName)             at Db4objects.Db4o.Internal.ObjectContainerFactory.OpenObjectContainer (configurazione IConfiguration, String databaseFileName)             at Db4objects.Db4o.Db4oFactory.OpenFile (configurazione IConfiguration, String databaseFileName)             at Db4objects.Db4o.Db4oFactory.OpenServer (configurazione IConfiguration, String databaseFileName, porta Int32, INativeSocketFactory socketFactory)             at Db4objects.Db4o.Db4oFactory.OpenServer (configurazione IConfiguration, String databaseFileName, porta Int32)             presso DataObjecten.db4oManager..cctor ()        InnerException:

È stato utile?

Soluzione 3

Ho scoperto che db4o NON funzionerà in un ambiente con attendibilità media. Chiunque stia cercando una soluzione nosql che sia integrabile o abilitata per server e utilizzabile in un ambiente di media fiducia dovrebbe dare un'occhiata a ravendb.net - risolto tutti i miei problemi ... (deve utilizzare il motore di archiviazione gestito da Munin).

Simile a un database di oggetti (db4o) ma senza tutto il mal di testa e molto più versatile. Inoltre, funziona con elementi come link o query standard tramite JSON / HTTP ...

I grandi vantaggi sono:

Ricerca di testo completo tramite Lucene.NET Sharding / Auto-Sharding Replica (WAN / LAN) Indicizzazione LINQ / Indicizzazione automatica Grandi prestazioni (molto più veloce di db4o) Nativo di .NET Conformità ACID Le transazioni Multi-tenancy Esegui in modalità client / server o incorporato Capace di funzionare con Medium Trust

Altri suggerimenti

Non so se funziona, ma potresti provare a scrivere una DLL wrapper che ha AllowPartiallyTrustedCaller impostato su true e passa tutte le chiamate alla DLL db4o.

Visto che db4o è open source è possibile scaricare e ricompilare con <=> ovviamente impostato su vero te stesso.

Questo thread suggerisce tuttavia che potrebbe non funzionare.

Ho riscontrato anche questo problema e sembra che db4o non funzionerà in modalità client / server in un ambiente di applicazioni web di media fiducia.
Questo progetto per i provider ASP.NET che utilizzano db4o sembra confermarlo.
Afferma che db4o dipende dalla riflessione e dal codice non gestito che sono entrambi proibiti con un livello di attendibilità medio.
Penso che la tua unica speranza di progresso sia quella di seguire il loro suggerimento e trovare un provider condiviso che ti consenta di eseguire il tuo codice in piena fiducia.
Molto deludente perché mi sono divertito a lavorare con db4o e questo ha appena messo a dura prova diverse settimane di lavoro.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top