Avatar billede Kim Neesgaard Seniormester
07. august 2006 - 15:39 Der er 32 kommentarer og
1 løsning

Conn. streng til Excel på netværk fra webserver

Vi har i firmaet et netværk og på dette netværk ligger der en Excelfil, som jeg gerne vil lave en connection til, fx. z:\MyExcel.xls (servernavnet er fx. server1). Min applikation ligger på en webserver.

Hvis jeg kører på min lokale maskine og har en Excelfil liggende her: c:\MyExcel.xls, kan jeg bruge følgende connection streng:

Dim ConnExcel As New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\MyExcel.xls;Extended Properties=""Excel 8.0;HDR=Yes;IMEX=1""")

Hvis jeg nu flytter min applikation op på webserveren, kunne man forestille sig, at man kunne bruge denne:

Dim ConnExcel As New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=Z:\MyExcel.xls;Extended Properties=""Excel 8.0;HDR=Yes;IMEX=1""")

men filen kan så ikke findes.

Hvis jeg i IE skriver:

\\server1\Z\MyExcel.xls kan Excelfilen godt findes.

Hvordan skal man mon skrive connectionstrengen?
Avatar billede snepnet Nybegynder
07. august 2006 - 15:57 #1
Det er måske fordi du ikke har rettigheder til det... Prøv for sjov at impersonere dig selv, og se om du så får lov:

I web.config i system.web sektionen:

<identity impersonate="true" userName="ditdomæne\ditbrugernavn" password="dinadgangskode" />

Mvh
Avatar billede snepnet Nybegynder
07. august 2006 - 15:57 #2
(Altså den bruger din webapplikation kører under har måske ikke rettigheder)
Avatar billede thrytter Nybegynder
07. august 2006 - 21:06 #3
Vil ikke mene, at det er særlig smart at give webserveren / applikationen adgang til det interne netværk.

Kan det ikke løses ved at placere excel-filen på webserveren?
Avatar billede Kim Neesgaard Seniormester
08. august 2006 - 09:02 #4
snepnet -> Hm - så skriver den: Access to the path "C:\WINNT\Microsoft.NET\Framework\v1.1.4322\Temporary ASP.NET Files\webhotel_enzyme_ebqm_qcc_test-kimn_scorecard\9b1ef8c6\8a386b36\hash.web" is denied.

thrytter -> Desværre ikke, da en anden applikation vedligeholder data i Excelarket i netop dette bibliotek, så det er ikke lige til at ændre.
Avatar billede snepnet Nybegynder
08. august 2006 - 13:53 #5
Avatar billede Kim Neesgaard Seniormester
08. august 2006 - 14:41 #6
Jeg får kun denne fejl, når jeg kører på webserveren. Kører jeg lokalt, vil den bare ikke oprette forbindelse. Så jeg skal vel bede den webserveransvarlige om at stoppe denne Indexing Service?
Avatar billede snepnet Nybegynder
08. august 2006 - 14:45 #7
Det er ikke noget jeg selv har prøvet - fandt bare linket.
Men du kan henvise ham til det, og høre om det er ok for en test.
Mvh
Avatar billede Kim Neesgaard Seniormester
08. august 2006 - 16:02 #8
Det er nu forsøgt!
Avatar billede snepnet Nybegynder
08. august 2006 - 16:24 #9
hvad var så resultatet?
Mvh
Avatar billede Kim Neesgaard Seniormester
08. august 2006 - 18:51 #10
Jeg har endnu kun anmodet dem om at gøre det!!
Avatar billede Kim Neesgaard Seniormester
09. august 2006 - 09:18 #11
Jeg sidder lige og nærlæser fejlbeskeden og den siger med småt:

ASP.NET is not authorized to access the requested resource. Consider granting access rights to the resource to the ASP.NET request identity. ASP.NET has a base process identity (typically {MACHINE}\ASPNET on IIS 5 or Network Service on IIS 6) that is used if the application is not impersonating. If the application is impersonating via <identity impersonate="true"/>, the identity will be the anonymous user (typically IUSR_MACHINENAME) or the authenticated request user.

Siger det dig noget nærmere?
Avatar billede Kim Neesgaard Seniormester
09. august 2006 - 09:53 #12
Min web.config indeholder pt.:

<authentication mode="Windows" />
<identity impersonate="true" userName="mitdomæne\mitbrugernavn" password="minadgangskode" />
Avatar billede Kim Neesgaard Seniormester
09. august 2006 - 15:47 #13
Hvis man ser på selve stien i fejlmeldingen:

Access to the path "C:\WINNT\Microsoft.NET\Framework\v1.1.4322\Temporary ASP.NET Files\webhotel_enzyme_ebqm_qcc_test-kimn_scorecard\9b1ef8c6\8a386b36\hash.web" is denied.

så er den slet ikke mulig på min maskine - den hedder:

C:\Windows\Microsoft.NET\Framework\v1.1.4322\Temporary ASP.NET Files

Altså ikke WINNT.
Avatar billede snepnet Nybegynder
09. august 2006 - 15:54 #14
Umiddelbart er det lidt underligt med det andet navn?!?
Prøv at sende de nævnte rettigheder på den folder du har og se hvad der sker.
De har bokset med det også på den side jeg linkede til oprindeligt.
Mvh
Avatar billede Kim Neesgaard Seniormester
09. august 2006 - 16:04 #15
Hvordan sende rettigheder?
Avatar billede snepnet Nybegynder
09. august 2006 - 16:11 #16
LOLZ - der skulle have stået sætte, ikke sende :o)
Mvh
Avatar billede Kim Neesgaard Seniormester
11. august 2006 - 10:00 #17
Jeg har fundet et link til et meget identisk problem: http://weblogs.asp.net/bsimser/archive/2004/11/04/252512.aspx - hvad mener du om det? Jeg har bedt webafdelingen om at gøre det.
Avatar billede snepnet Nybegynder
11. august 2006 - 10:08 #18
Det er samme budskab som i tidligere link (08/08-2006 13:53:21), som han også henviser til fra dit link (det er i hvert fald det det ender med).
Der giver de dog bare users lov til at skrive i folderen.
Men hva' - jeg kan ikke se noget i vejen for at admin skulle eje en folder på maskinen :o)
Mvh
Avatar billede Kim Neesgaard Seniormester
14. august 2006 - 10:09 #19
Nu har de gjort som der stod i linket og nu er den giftige hash.web fejl forsvundet! Når jeg nu forsøger at oprette forbindelse går den i fejl og Err.Description siger så:

Z:\MyExcel.xls is not a valid path. Make sure that the path name is spelled correctly and that you are connected to the server on which the file resides.

så nu må det vel være selve syntaksen, det er galt med. Kan man forestille sig, at forbindelsesstrengen skal indeholde servernavnet på en eller anden måde?
Avatar billede Kim Neesgaard Seniormester
14. august 2006 - 10:17 #20
Jeg har også taget min

<identity impersonate="true" userName="ditdomæne\ditbrugernavn" password="dinadgangskode" />

ud og det er åbenbart den, der giver fejlen, for når jeg sætter den ind igen, så går den i fejl.
Avatar billede Kim Neesgaard Seniormester
14. august 2006 - 15:15 #21
Jeg fandt dette link: http://www.daniweb.com/techtalkforums/thread26473.html, hvor det hævdes, at "Microsoft.Jet.OLEDB.4.0" kun er for Access og ikke kan bruges for Excel - er det rigtigt?
Avatar billede snepnet Nybegynder
14. august 2006 - 20:12 #22
Det tror jeg ikke du skal være nervøs for - så ville de jo være magi at det virkede for dig lokalt ;o)
Hvis du gerne vil bruge dine mappede drev, kan det tænkes at denne her er anvendelig:
http://www.codexchange.net/PreviewSnippet.aspx?SnippetID=cc1cc62d-615a-40ad-b73f-8281c38a2059
Mvh
Avatar billede Kim Neesgaard Seniormester
14. august 2006 - 21:46 #23
Interessant - vil afprøve i morgen!
Avatar billede Kim Neesgaard Seniormester
15. august 2006 - 10:02 #24
Uha - det ser godt nok indviklet ud!! Så vidt jeg kan se, skal jeg konvertere det almindelige drevbogstav til en absolut UNC sti og denne kan så formodentlig bruges i forbindelsesstrengen. Kan du mon lede mig lidt på vej? Jeg har lagt en Excelfil her: X:\share\A\MyExcel.xls, hvor X: er et netværksdrev. Hvad vil jeg konkret skulle skrive for at få en UNC sti?
Avatar billede snepnet Nybegynder
15. august 2006 - 10:11 #25
Du kan bare bruge det du har mappet drevet som:
\\server\...
Det lille program fikser det bare for dig.
Mvh
Avatar billede Kim Neesgaard Seniormester
23. august 2006 - 13:42 #26
Nu har jeg fået et lille program, der direkte putter UNC stien op i klippebordet:

\\server\z\....

og jeg har prøvet både med servernavnet og serverens IP adresse, men jeg får stadig fejl.

Jeg har prøvet at lægge en Accessfil på samme sted som Excelfilen og åbne med en rettet connectionstring og her får jeg fejlen:

The Microsoft Jet database engine cannot open the file '\\server\z\......\db.mdb'. It is already opened exclusively by another user, or you need permission to view its data.

Databasen er ikke åben (jeg kan åbne den på netværket med stifinder uden problemer) og de siger, at adgangen til filen er ok. Hvis jeg lægger Accessdatabasen på min lokale pc med samme forbindelse, åbnes uden problemer.

Jeg har også prøvet at lægge Accessdatabasen på samme webserver som .aspx'en og så åbnes uden problemer?
Avatar billede Kim Neesgaard Seniormester
24. august 2006 - 13:09 #27
Nu tror jeg, at jeg er på sporet!!

Jeg prøvede at lave en File.Copy, men heller ikke her kunne filen findes, men ved søgning på nettet, fandt jeg følgende: http://www.codecomments.com/archive289-2004-5-205292.html og det beskriver nøjagtigt det fænomen, jeg er ude for. Af svaret fremgår: to copy to another server you need to impersonate a primary token, not an
impersonation. Desværre er der ikke mere end det.

Videre søgning sendte mig til denne: http://en.wikipedia.org/wiki/Token_(Windows_NT_architecture)#How_a_token_is_used_in_access_control, men anvendelsen er desværre ikke udfyldt endnu.

snepnet -> Ved du, hvordan man skal bruge dette i praksis?
Avatar billede Kim Neesgaard Seniormester
24. august 2006 - 13:16 #28
Avatar billede snepnet Nybegynder
26. august 2006 - 20:14 #29
Hej igen - har ikke været online i nogle dage.
Har du prøvet det sidste du henviste til?
Mvh
Avatar billede Kim Neesgaard Seniormester
27. august 2006 - 09:31 #30
Nej - jeg er i tvil om, hvor man kører koden? Kan man blot sætte den ind lige før forbindelsen skal oprettes - altså under DoSomeWorkWhileImpersonating();?
Avatar billede snepnet Nybegynder
27. august 2006 - 10:57 #31
DoSomeWorkWhileImpersonating(); repræsenterer det du selv skal lave - så den skifter du bare ud med det du har.
Mvh
Avatar billede Kim Neesgaard Seniormester
05. september 2006 - 16:45 #32
Nu virker dit råd fra 07/08-2006 15:57:19 - jeg får ikke mere den 'hash' besked?! Det er den samme .aspx fil, så jeg ved ikke rigtigt, hvad der gik galt i første omgang, men nu kan den!!! Herligt!

Lægger du et svar?
Avatar billede snepnet Nybegynder
06. september 2006 - 11:59 #33
Kommer her :o)
Mvh
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