Avatar billede trayzor Nybegynder
29. oktober 2002 - 14:30 Der er 12 kommentarer og
3 løsninger

Instans af klasse fejler

Jeg har efter at have uploadet en fil denne linie:

PowerPoint.Application app = new PowerPoint.ApplicationClass();

Den genererer en fejlbesked Access Denied. Det virker top mærkeligt eftersom filen uploades og denne linje ikke har noget at gøre med selve upload-delen.

Ovenstående virker når man laver en console application.

Jeg har referencer til både MS Object 10.0 Lib og Powerpoint.

Nogen ideer?

/Michael
Avatar billede z42cool Nybegynder
29. oktober 2002 - 15:03 #1
Når du laver det i en console app så er det den bruger du er logget på med der forsøger at åbne filen. Når du derimod gør det vha. af en web app så er det ASPNET brugeren der forsøger at åbne filen så du skal være helt sikker på at denne har tilladelse til dette!
Avatar billede trayzor Nybegynder
29. oktober 2002 - 15:06 #2
Ok. Kan du forklare hvordan man sætter webbrugerens access til at få adgang til namespacet Powerpoint ?

Min .Net erfaring er ikke så stor...
Avatar billede trayzor Nybegynder
29. oktober 2002 - 15:15 #3
jeg bruger forresten XP
Avatar billede z42cool Nybegynder
29. oktober 2002 - 15:18 #4
Det er ikke adgangen til namespacet der er problemet, det er brugerens (ASPNET som er den bruger asp.net worker processen kører under) adgang til filen der er problemet!
Avatar billede trayzor Nybegynder
29. oktober 2002 - 15:23 #5
Jeg kan godt uploade filen.

Det er udelukkende linjen:
PowerPoint.Application app = new PowerPoint.ApplicationClass();
der fejler.
Avatar billede trayzor Nybegynder
29. oktober 2002 - 15:24 #6
Jeg har addet ASPNET brugeren...
Avatar billede z42cool Nybegynder
29. oktober 2002 - 15:38 #7
Er du sikker på at klassen hedder PowerPoint.ApplicationClass og ikke PowerPoint.Application????
Avatar billede trayzor Nybegynder
29. oktober 2002 - 15:43 #8
Ja. Jeg har testet det som Console application - der virker det hele fint. Men så snart det bliver overført til web får jeg access denied ved den nævnte linje.

Det underlige er at der burde være adgang til den eftersom det kompileres fint. Det er først når det eksekveres at det kikser.
Avatar billede thomasandersen Nybegynder
29. oktober 2002 - 15:46 #9
Er det ikke samme problem som http://www.eksperten.dk/spm/275199
Avatar billede z42cool Nybegynder
29. oktober 2002 - 15:53 #10
Bare fordi PowerPoint.ApplicationClass virker i en console application er den jo ikke nødvendigvis rigtig. I følge MS er det yderst sjældent at office interop klasserne der ender på Class skal bruges, se her:

http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnoxpta/html/odc_piaissues.asp
Avatar billede trayzor Nybegynder
29. oktober 2002 - 16:12 #11
Thomas: jeg kan ikke helt se relationen... Har jeg misset noget?

z42cool: det er korrekt. Vidste jeg ikke. Jeg kan dog ikke få det til at virke med:
PowerPoint.Application app = new PowerPoint.Application();

Jeg syntes fejlmeddelsen er lidt misvisende. "Adgang nægtet".
Avatar billede thomasandersen Nybegynder
30. oktober 2002 - 08:23 #12
Nu ved jeg ikke rigtigt hvordan du køre din app.

Men en lokal applikation har mange flere rettigheder ind én hentet fra nettet. Så det er muligt at du ikke har givet den downloaded app adgang til at afvikle andre apps som powerpoint?

(PS, jeg har ikke selv prøvet at rode med rettigheder i .net, det er kun noget jeg har hørt om hos M$)
Avatar billede trayzor Nybegynder
30. oktober 2002 - 09:33 #13
Jeg kører med et aspx dokument med et tilknyttet aspx.cs dokument (code behind).

Det værste er at jeg ikke har set nogen bruge Interop i forbindelse med web. Kun i Console applikationer. Men jeg kan ikke forstå hvis ikke det er muligt...

Og der findes så vidt jeg kan finde ikke så meget dokumentation om dette område. Eller også kan jeg bare ikke finde det.... =/
Avatar billede trayzor Nybegynder
30. oktober 2002 - 10:56 #14
Det der sker når PowerPoint klassen instansieres er at der bliver kastet en exception: System.UnauthorizedAccessException
Avatar billede reffak Nybegynder
09. november 2002 - 12:19 #15
Brug sysinternals, beskrevet her :
http://support.microsoft.com/default.aspx?scid=KB;EN-US;Q286198&
Track de anvendte dll's på computeren hvorpå det virker. Kontroller ASPNET brugerens access til hver dll.

Alternativt, hvis du har adgang til machine.config, så sæt userName="SYSTEM" under processModel. Dermed kører asp.net sessionen som system-kontoen.
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
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

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