Avatar billede wormu Nybegynder
29. januar 2008 - 11:27 Der er 11 kommentarer og
1 løsning

Microsoft.Office.Interop.Word

Hej
Jeg har lavet en applikation der åbner word, genererer et dokument og derefter lukker Word, men efter at have published applikationen, får jeg flg. fejl:
"Denne assembly tillader ikke kaldere med delvis tillid"

Min kode er flg:

Imports word = Microsoft.Office.Interop.Word


Sub GenererDokument
        Dim oWord As word.Application
        Dim oDoc As word.Document

        Dim Filnavn As String = "D:\Skabelon.dot"

        oWord = CType(CreateObject("Word.Application"), word.Application)
        oWord.Documents.Add(CObj(Filnavn))

        oDoc = oWord.ActiveDocument

        oDoc.SaveAs("D:\dokument.doc ")
        oWord.Quit(False)
End Sub

Når jeg vælger "Publish now" får jeg følgende advarsler:
Reference ’Microsoft.Office.Interop.Word’ does not allow partially trusted callers
Reference ’Microsoft.Office.Interop.Word’ is an interop assembly requiring full trust

Security niveau er sat til "this is a full trust application"

Hvad gør jeg forkert ?
Avatar billede verakso Nybegynder
29. januar 2008 - 12:36 #1
"efter at have published applikationen, får jeg flg. fejl:"

Det vil sige at du ikke afvikler applikationen lokalt, men via et netværksdrev el. lign.?

I så fald skal der sættes nogle rettigheder der for at komme ud af sandkassen.
Avatar billede wormu Nybegynder
29. januar 2008 - 12:39 #2
Ja - det er via et netværksdrev. Jeg har forsøgt at publishere til min personlige mappe på vores netværk. Ved du hvad der er for rettigheder der skal sættes ?
Avatar billede verakso Nybegynder
29. januar 2008 - 15:55 #3
Hmm ja, men jeg skal lige prøve og se om jeg kan huske det, eller forklare det

Du skal have fat i .NET Framework Configuration Tool (Mscorcfg.msc) (Se evt. her: http://kortlink.dk/4rah)

Udvid Denne computer, og vælg "Sikkerheds politik under kørsel" eller "Runtime Security Policy" på engelsk

Hvad du så forsøger herfra er lidt op til dig, men jeg valgte at gå i "Machine" -> "Code Groups" -> "All Code" -> "LocalIntranetZone".

Her oprettede jeg en ny Code Group, som jeg gave et navn for at kunne genkende den, det kunne være "Hjemmedrev"

Condition Type, eller betingelsestypen skal så være URL.
Som URL adresse skriver du så file://D:/* hvis det er D-drevet du vil give fuld adgang.

Jeg er dog lige nød til at slå fast inden jeg bliver pwned, at dette jo giver din maskine fuld adgang til at afvikle code fra dette drev, også hvis andre har lagt noget dårlig kode ud.

Dernæst, så har du kun givet din maskine ret til at afvikle kode fra drevet, er der andre der skal kunne de samme på samme drev, så skal du også have givet dem lov. Men fortvivl ikke, for har du oprettet de rettigheder der virker, og som du syntes de skal være, så kan du eksportere dem som en MSI pakke.
Det gøres ved at højreklikke på "Sikkerhedspolitik under kørsel/Runtine Security Policy" og vælge "Create Deployment Package/Opret implementerings pakke"

Håber at denne smøre hjælper dig lidt på vej
Avatar billede wormu Nybegynder
30. januar 2008 - 10:54 #4
Ok - tak.... der var jeg slet ikke på vej hen
Jeg prøver mig lidt frem og vender tilbage....
Avatar billede verakso Nybegynder
30. januar 2008 - 11:44 #5
Der er sikkert nogle af de der MVP'er eller MS Evangelister der bedre kan forklarer dig omkring .NET sikkerheden, men i bund og grund, så kører alt sandboxed.

Det vil sige, at der er gjort en del ud af ikke at kunne afvikle kode der kan ligge hele butikken ned.

Derfor er der visse ting der ikke kan afvikles vi netværket, før man har åbnet op for dette. Det kunne jo være at der var andre der havde skrevet noget grim kode, der så kunne få din maskine til at gå i dørken.

At det så virker lokalt, er jo fordi med installationen af .NET på maskinen, har du ligesom implicit givet lov til at kunne gøre den kode du selv laver.
Avatar billede wormu Nybegynder
31. januar 2008 - 13:49 #6
Det lyder jo meget logisk når du skriver det :o).
Jeg har forsøgt mig lidt frem, men har ikke kunnet få det til at virke
---
Condition Type, eller betingelsestypen skal så være URL.
Som URL adresse skriver du så file://D:/* hvis det er D-drevet du vil give fuld adgang
---
jeg er ikke helt med mht URL adressen - er det den adresse hvor min exe-fil ligger eller.... ? Det er lidt sjovt, for hvis jeg forsøger med setup.exe så starter applikationen og det hele kører "glat", men hvis jeg forsøger med applikationens exe-fil så får jeg stadig samme fejl.
Avatar billede verakso Nybegynder
31. januar 2008 - 22:51 #7
Jeps, URL adressen er den adresse til din exe fil, som du kunne skrive den i en browser eks: file://C:/WINDOWS/notepad.exe

/* indikere så bare at alt derfra og ned er under reglen

Du har til gengæld tabt mig, hvad er forskellen på setup programmet og applikations exe-filen?

(Jeg ved godt at setup sikker er installations programmet, men det har ikke en dyt med rettighederne på applikations exe-filen at gøre, hvis du installere på en anden disk/drev en et lokalt)

Så igen, hvis antaget er, at din applikations exe-fil IKKE ligger på din lokale harddisk, men et netværksdrev, så vil jeg stadigt holde fast på, at det er rettighederne der driller.

Så enten må brugerne køre din app lokalt, eller også skal der styr på rettighederne.
Avatar billede verakso Nybegynder
31. januar 2008 - 22:58 #8
Nu fandt jeg den gamle guide der hjalp mig i sin tid, måske det står mere klart her en det vrøvl jeg har formuleret:

http://kortlink.dk/4rmx

Eller man kan også bruge CASPOL.EXE til at fikse rettighederne, det kan du læse om her:

http://kortlink.dk/4rmy og her http://kortlink.dk/4rmz

Håber at dette hjælper lidt mere på vej
Avatar billede verakso Nybegynder
31. januar 2008 - 23:05 #9
En sidste kommetar.

Em kort søgning på den fejl du får, leder mig til denne side:

http://kortlink.dk/4rn2

Og sørme ikke om der står det jeg har prøvet at forklare, så igen - måske dette kan hjælpe.

Det er ret tydeligt at problemet opstår fordi din applikations exe-fil ikke har lov (eller dele af den) til at køre der fra hvor den ligger
Avatar billede wormu Nybegynder
01. februar 2008 - 10:46 #10
Nu ser det ud til at jeg har fået hul igennem....
Tusinde tak for hjælpen - det var lige det der skulle til.
Avatar billede wormu Nybegynder
04. februar 2008 - 12:29 #11
Hej verakso - lægger du et svar ?
Avatar billede verakso Nybegynder
04. februar 2008 - 23:18 #12
Bare glad for at kunne hjælpe.

Den her var nemlig en der var ret så pisse irriterende, så det er jo rart at få bugt med den slags drillerier.
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