Home Page
Articoli
Tips & Tricks
News
Forum
Archivio Forum
Blogs
Sondaggi
Rss
Video
Utenti
Chi Siamo
Contattaci
Username:
Password:
Login
Registrati ora!
Recupera Password
Home Page
Stanze Forum
ASP.NET 2.0 / 3.5 / 4.0
Accesso a file da dll
domenica 16 maggio 2010 - 14.23
Elenco Threads
Stanze Forum
Aggiungi ai Preferiti
Cerca nel forum
Carlik
Profilo
| Junior Member
158
messaggi | Data Invio:
dom 16 mag 2010 - 14:23
Salve , nel mio team stiamo creando una webapplication.Io mi occupo dell'API(VB 2005) , una mia collega della GUI(ASP.NET). Il mio problema consiste nell'accesso a dei file da una delle mie librerie quando i riferimenti alle stesse vengono creati nella web application.
Infatti quando provavo le mie dll da un minigestionale , scrivevo
doc.Load("./config.xml")
per accedere al file xml. Adesso invece non riesco in nessun modo ad accedere ad alcun percorso(neanche nella directory virtuale).
Ho provato un po' di tutto ,server.mappath, etc , ma non sono riuscito a risolvere. qualcuno sa aiutarmi?
TOPOAMORE
Profilo
| Expert
695
messaggi | Data Invio:
dom 16 mag 2010 - 20:36
Ciao...
ma che errore ti da???
ASP 2.0 - VB 2008
Carlik
Profilo
| Junior Member
158
messaggi | Data Invio:
dom 16 mag 2010 - 22:20
Nel caso di
Try
doc.Load("./config.xml")
Catch ex As Exception
doc = Nothing
End Try
l'eccezione è
Impossibile trovare il file 'C:\Users\Carlo\Documents\Visual Studio 2005\Projects\config.xml'.
(Questo errore me lo dà da quando ho aggiunto il file config alla soluzione web application)
Gluck74
Profilo
| Guru
1.359
messaggi | Data Invio:
lun 17 mag 2010 - 15:48
Ciao,
ti chiedo qualche informazione:
1 - i file che stai cercando di aprire, in che posizione sono? Sono nella cartella del sito web o una sua sottocartella?
2 - il file web.config che hai inserito per l'applicazione web, per caso imposta qualche restrizione di accesso alle cartelle? o utilizza "impersonate" per specificare un utente del processo?
3 - Stessa cosa per la dll: è configurata per essere eseguita da un utente in particolare?
Carlik
Profilo
| Junior Member
158
messaggi | Data Invio:
lun 17 mag 2010 - 18:52
>Ciao,
>ti chiedo qualche informazione:
>
>1 - i file che stai cercando di aprire, in che posizione sono?
>Sono nella cartella del sito web o una sua sottocartella?
>
>2 - il file web.config che hai inserito per l'applicazione web,
>per caso imposta qualche restrizione di accesso alle cartelle?
>o utilizza "impersonate" per specificare un utente del processo?
>
>3 - Stessa cosa per la dll: è configurata per essere eseguita
>da un utente in particolare?
1. Il file sta dove voglio io nel senso che posso metterlo dove voglio: nella winApp stava sotto bin/debug , qui può stare dove voglio , anche nella cartella virtuale di iis
2. il web config non l'ho toccato :
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<appSettings/>
<connectionStrings>
<add name="connString" connectionString="Persist Security Info=False;User ID=sa;Initial Catalog=Mnemosine;Data Source=(local)\SQLEXPRESS" providerName="System.Data.SqlClient"/>
</connectionStrings>
<system.web>
<!--
Impostare compilation debug="true" per inserire i
simboli di debug nella pagina compilata. Poiché tale operazione ha effetto
sulle prestazioni, impostare questo valore su true
solo durante lo sviluppo.
Opzioni di Visual Basic:
Impostare strict="true" per impedire qualsiasi conversione di tipi di dati
in caso di possibile perdita di dati.
Impostare explicit="true" per imporre la dichiarazione di tutte le variabili.
-->
<compilation debug="true" strict="false" explicit="true" />
<pages>
<namespaces>
<clear />
<add namespace="System" />
<add namespace="System.Collections" />
<add namespace="System.Collections.Specialized" />
<add namespace="System.Configuration" />
<add namespace="System.Text" />
<add namespace="System.Text.RegularExpressions" />
<add namespace="System.Web" />
<add namespace="System.Web.Caching" />
<add namespace="System.Web.SessionState" />
<add namespace="System.Web.Security" />
<add namespace="System.Web.Profile" />
<add namespace="System.Web.UI" />
<add namespace="System.Web.UI.WebControls" />
<add namespace="System.Web.UI.WebControls.WebParts" />
<add namespace="System.Web.UI.HtmlControls" />
</namespaces>
</pages>
<!--
La sezione <authentication> consente di configurare
la modalità di autenticazione della protezione utilizzata da
ASP.NET per identificare un utente in ingresso.
-->
<authentication mode="Windows" />
<!--
La sezione <customErrors> consente di configurare
l'operazione da eseguire in caso di errore non gestito
durante l'esecuzione di una richiesta. In particolare,
consente agli sviluppatori di configurare le pagine di errore HTML
in modo che vengano visualizzate al posto dell'analisi dello stack dell'errore.
<customErrors mode="RemoteOnly" defaultRedirect="GenericErrorPage.htm">
<error statusCode="403" redirect="NoAccess.htm" />
<error statusCode="404" redirect="FileNotFound.htm" />
</customErrors>
-->
</system.web>
</configuration>
3.La dll non ha particolari permessi...
Gluck74
Profilo
| Guru
1.359
messaggi | Data Invio:
mar 18 mag 2010 - 16:48
Il problema è quindi che il file non può essere letto dal processo che gira per il sito web.
Un sito web per non essere "malevolo", gira per forza di cose con un utente speciale "se non diversamente specificato", che ha di permessi molto ristretti.
Quindi per poter accedere ad un file, questo deve essere per forza di cose in una cartella mappata sotto il sito (una virtual directory).
Se lo metti in un altro posto non accedibile dal sito, non puoi probabilmente leggerlo.
Inoltre usa sempre il comando Server.mapPath(<path e nome file nella cartella virtuale>) che ti restituisce il percorso fisico sul disco.
ciao
Carlik
Profilo
| Junior Member
158
messaggi | Data Invio:
mar 18 mag 2010 - 17:03
>Il problema è quindi che il file non può essere letto dal processo
>che gira per il sito web.
>Un sito web per non essere "malevolo", gira per forza di cose
>con un utente speciale "se non diversamente specificato", che
>ha di permessi molto ristretti.
>
>Quindi per poter accedere ad un file, questo deve essere per
>forza di cose in una cartella mappata sotto il sito (una virtual
>directory).
>Se lo metti in un altro posto non accedibile dal sito, non puoi
>probabilmente leggerlo.
>
>Inoltre usa sempre il comando Server.mapPath(<path e nome
>file nella cartella virtuale>) che ti restituisce il percorso
>fisico sul disco.
>
Perdonami , ma quello che mi dici non mi aiuta : sono sicuro che se tu avessi davanti il mio problema lo risolveresti in 1,5 secondi ...
per ciò che riguarda il Server.mappath , cosa devo importare? se importo system.web continua a non farmelo eseguire (errore nella compilazione della dll)
Inoltre volevo chiedere se ponendo il file in una posizione qualsiasi all'interno della cartella virtuale del sito , esso veniva trovato.
Ciao e grazie
Gluck74
Profilo
| Guru
1.359
messaggi | Data Invio:
mer 19 mag 2010 - 15:13
Perdonami, ma forse mi è sfuggito qualcosa.
Il codice che ti da errore non fa parte del sito? è una dll esterna?
se fosse così le cose cambiano.
com'è impostata la tua soluzion? (web appl. + dll ? )
Carlik
Profilo
| Junior Member
158
messaggi | Data Invio:
mer 19 mag 2010 - 16:42
>Perdonami, ma forse mi è sfuggito qualcosa.
>Il codice che ti da errore non fa parte del sito? è una dll esterna?
>se fosse così le cose cambiano.
>
>com'è impostata la tua soluzion? (web appl. + dll ? )
Sì! Il codice che mi dà errore è in una dll esterna.Io ho creato la dll e finora l'ho provata grazie ad una winapp di prova(per questo motivo utilizzavo la Load dell'XMLDocument).
La mia soluzione è impostata come webapplication + riferimento alle dll create!
Torna su
Stanze Forum
Elenco Threads
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?
Dopo esserti registrato potrai chiedere
aiuto sul nostro
Forum
oppure aiutare gli altri
Consulta le
Stanze
disponibili.
Registrati ora !