2 messaggi dal 24 febbraio 2007
Ho un grosso problema con LINQ TO SQL ed ARUBA, ovvero io uso una classe .dbml per collegare la mia basedati. In locale o su di un server windows server con IIS funziona tutto benissimo mentre quando pubblico il mio sito su Aruba se chiamo il db tramite System.Data.SqlClient funziona tutto benissimo ma appena chiamo il DB tramite linq mi da questo errore:

Server Error in '/' Application.

Attempt by method 'DynamicClass.lambda_method(System.Runtime.CompilerServices.Closure)' to access method 'System.Web.UI.Page.get_Context()' failed.

Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.

Exception Details: System.MethodAccessException: Attempt by method 'DynamicClass.lambda_method(System.Runtime.CompilerServices.Closure)' to access method 'System.Web.UI.Page.get_Context()' failed.

Grazie Luca
11.886 messaggi dal 09 febbraio 2002
Contributi
ciao e benvenuto!
Puoi postare la riga di codice che sta sollevando l'eccezione?
Se interpreto correttamente il testo dell'errore, stai accedendo al contesto http dall'interno di una lambda. Come mai? Devi usare un valore che ti arriva dalla querystring o dal form? Se è questo il caso, prova prima ad inserire il valore in una variabile e poi ad usarla nella lambda:

var valore = Request.QueryString["chiave"];
var query = ctx.Collezione.Where(c=>c.Campo==valore);

ciao

Enjoy learning and just keep making
2 messaggi dal 24 febbraio 2007
Grazie per la risposta BrightSoul,

ho risolto stavo proprio per postare la soluzione, è proprio come dici tu volevo accedere al "Context.User.Identity.Name" per sapere il nome dell'utente collegato dall'interno di una query LINQ ed ho risolto appoggiando questo valore in una variabile che poi usavo nella query.
Tutto questo cmq. mi succede solo su ARUBA ovvero impostando il "trust level" a Medium.

Posto il codice nel caso in cui qualcuno dovesse imbattersi nel mio stesso problema ;-)


Codice ERRATO:
Dim Query1 = (From Avvocato In dataContext.Avvocati _
Where Avvocato.NomeUtente = Context.User.Identity.Name _
Select Avvocato)

Codice FUNZIONANTE:
Dim AvvocatoCollegato As String = Context.User.Identity.Name

Dim Query1 = (From Avvocato In dataContext.Avvocati _
Where Avvocato.NomeUtente = AvvocatoCollegato _
Select Avvocato)

Ciao e grazie ancora,

Luca

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.