Avatar billede bromer Nybegynder
08. december 2005 - 14:25 Der er 6 kommentarer og
1 løsning

Give .aspx filerne adgang til reflection.

Hejsa.

Jeg har skrevet noget i C# der benytter reflection. Når jeg prøver at køre dette gennem en .aspx fil får jeg en "System.Security.Permissions.ReflectionPermission" fejl. Hvordan præcis får jeg systemet til at forstå at det må den godt? Er det i .NET frameworket eller i IIS'en?

Og hvad præcis skal jeg gøre for at få det til at virke.
Avatar billede hacked Nybegynder
08. december 2005 - 14:52 #1
Mit bud er at det er IIS'en. Dette er et gæt - gå ind i din .net configuration - vælg den første runtime security police mappe (oppefra og ned)- vælg code groups - vælg all code - vælg Edit Code Group Properties - sæt flueben i policy below this lvl will not be evalueted - vælg tab Permisson Set - I Permission Set sætter du Full Trust. Håber det virker ellers paste noget kode.
Avatar billede hacked Nybegynder
08. december 2005 - 14:54 #2
lige efter du har valgt Runtime Security Police mappen vælg Enterprise.
Avatar billede bromer Nybegynder
08. december 2005 - 16:04 #3
Det ser ud til at virke okay. Nu får jeg ikke den der permission fejl. Men nu fejler følgende kode:

Assembly asm = Assembly.GetEntryAssembly();
foreach(Type asmType in asm.GetTypes()) {

Får en "Object reference not set to an instance of an object." fejl. Det virkede fint, da jeg oversætte det hele til en .exe og kørte det, men ikke nu når det bliver kørt via en .dll.

I hvilken grad ændrer en assembly sig når den bliver oversat til en .dll frem for en .exe.
Avatar billede hacked Nybegynder
08. december 2005 - 17:57 #4
Ok - Assembly.GetEntryAssembly() returnerer null i asp.net fordi koden som bliver eksekveret ikke bliver startet af et kald til AppDomain.ExecuteAssembly som kun bliver udført når du starter en exe fil.

Prøv istedet Assembly.GetExecutingAssembly
Avatar billede hacked Nybegynder
08. december 2005 - 18:03 #5
En webside i asp.net er i sidste ende en klasse der implementere IHttpHandler interface. Når asp.net skal udføre et request konstruere den en ny instance af en klasse der svarer til den side som bliver besøgt. Metoden som står for at behandle requestet er ProcessRequest.

Intet sted i denne proces bliver en assemblys entry point eksekveret hvilket er medførende til at GetEntryAssembly-metoden ikke virker.
Avatar billede bromer Nybegynder
09. december 2005 - 14:39 #6
Det virkede så helt perfekt. Mange tak for forklaringen. Smider du et svar?
Avatar billede hacked Nybegynder
09. december 2005 - 14:58 #7
hermed et svar - og det var så lidt :)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester