09. februar 2007 - 18:57Der er
17 kommentarer og 1 løsning
asp.net 2 og virtual directory
Heyza alle.
Jeg har et problem, som jeg er ved at gå super-bonanza over. Jeg har netop færdiggjort et .net2-projekt som skal køre på min webserver (Win 2K3, IIS6). Det virker også ganske glimrende når jeg uploader filerne (precompiled) og åbner sitet i en browser.
Problemet opstår fordi jeg gerne vil kunne bruge applikationen på flere websites hostet på serveren. Dertil vil jeg lægge alle fælles filer i et bibliotek og derefter lave et virtual directory til de web sites, som skal bruge applikationen. Denne procedurer kører allerede i anden sammenhænge på "alm." asp-sites. Men når jeg opretter et virtual directory til de fælles filer, så kan .NET-applikationen ikke se mappen! Jeg har givet fællesmappen fuld skrald af rettigheder og har prøvet at trykke på stort set alle knapper i web site-indstillinger i IIS uden noget success overhovedet.
Nogen, der har oplevet noget lignende eller har forslag?
Yep, har prøvet det. Jeg får fejlen "Could not find a part of the path..." når jeg prøver at læse en tekstfil det virtuelle directory, og error stacken siger:
Ja, det er korrekt. Efter MEGET legen frem og tilbage fandt jeg ud af, at jeg i stedet for Request.physicalApplicaitonPath & "FCKeditor" skulle bruge Server.MapPath("FCKeditor")
Så nu virker det med de delte html/js-filer.
Til gengæld er der opstået et andet problem, for nu vil jeg gerne lave samme stunt med nogle af de gænge classes i projektet...både af opdaterings- og pladshensyn. Så nu forsøger jeg at dele "App_Code"-biblioteket som virtual directory, men får en anden fejl: The path '/ncdnm/App_Code/' maps to a directory outside this application, which is not supported.
Jeg kan at hver eneste request til startsiden danner en ny warning entry i event log'en under "application", og der står at "NETWORK SERVICE"-konto ikke er authorized og ikke anvender impersonation. Se, det forstår jeg så heller ikke. Konto har fuld adgang til den fysiske mappe hvor de fælles filer ligger, og der er en <location>-key i web.config til "App_Code". Problemet vedrører jo sikkert noget med rettigheder, men nu er jeg sgu på bar bund igen... :(
Det kan du ikke gøre. som du også for af vide i fejlmeddelelsen: The path '/ncdnm/App_Code/' maps to a directory outside this application, which is not supported. Hvis du vil dele din app_Code filer kan du måske ligge dem i et class library. Men jeg tvivler på at det kan lade sig gøre.
Nej, jeg havde også min tvivl. Men jeg kan se rundt omkring (læs: Google) at mange får samme fejl når de prøver at lave tricket med fx. App_GlobalResources, og det er vel også et application-specifikt bibliotek ligesom App_Code - eller er der noget jeg helt har misforstået?
Ja det er det. Hvis man skal dele nogen dll skal man ligge den i GAC på serveren. Men det kræver adgang til selve serveren og generelt kan det blive noget rodet noget.
Tja...jeg kan godt se hvad du ment med "generelt kan det blive noget rodet noget".
Det kan være jeg ganske enkelt bliver nødt til at finde mig i, at skulle inkludere samtlige classes i alle "installationer" af applikationen...selvom det ikke huer mig.
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.