L'accesso al percorso è negato in Visual Studio 2010

September 19

Windows 7 e Vista entrambi includono miglioramenti della sicurezza che limitano l'accesso ai file su disco. A meno che i privilegi sono allevati con accesso di amministratore, tutti i file diversi da quelli dei dati nelle cartelle utenti sono limitati a l'accesso in lettura. I programmi creati con Visual Studio 2010 che correva bene su Windows XP possono avere problemi quando viene spostato a Windows 7 o Vista.

Il problema

Windows 7 utilizza un modello di sicurezza che impedisce i programmi dannosi di modificare codice eseguibile. Solo i programmi con accesso amministrativo sono autorizzati a scrivere a cartelle sul disco C:. Qualsiasi tentativo di modificare altri file provocherà un errore. Anche con accesso amministrativo, Windows 7 spesso si apre un pop-up che chiede se possono essere fatte modifiche. L'unica cartella in cui l'accesso in scrittura può essere fatto è la cartella Users, e solo nella cartella creata per l'utente attualmente connesso.

Gli errori in Visual Studio

Anche se la maggior parte di questi errori si verificano durante l'esecuzione di programmi creati da Visual Studio 2010, ci sono occasioni in cui Visual Studio si alza questo errore. Di solito questo accade quando la pubblicazione di contenuti Web. Per risolvere questo problema, salvare il progetto in corso, chiudere Visual Studio, quindi riavviarlo facendo clic destro sul Studio icona visiva e scegliere l'opzione "Esegui come amministratore" opzione. Una volta che si avvia Visual Studio, aprire il progetto e pubblicare il contenuto.

Problemi Programmi in esecuzione

La maggior parte degli errori si verificano quando si eseguono programmi. I programmi che scrivono alla cartella corrente avrà esito negativo quando schierato su altre macchine, ma la struttura non offre un modo semplice per ottenere luoghi in cui i dati possono essere tranquillamente memorizzati. La funzione System.Environment.GetFolderPath restituisce la stringa di percorso a posizioni di archiviazione sicuri. Per salvare un file nella cartella dei dati dell'applicazione, usare:

percorso = System.Environment.GetFolderPath (System.Environment.LocalApplicationData)

Questa funzione restituisce anche le posizioni dei dati di applicazione comune, biblioteche, Musica, Documenti e una serie di altre posizioni. Qui ci sono un paio di altri valori percorso di enumerazione:

dati di programma condivisi da tutti gli utenti, - CommonApplicationData
ApplicationData - dati di applicazioni specifici dell'utente,
Cartella Documenti dell'utente, - MyDocuments
MyMusic - utente di mia cartella Musica,
MyPictures - cartella Immagini dell'utente,
Modelli - posizione dei file di modello,
CommonDocuments - cartella condivisa documenti,
CDBurning - cartella temporanea che contengono file per essere masterizzato su CD.

Raising privilegi di scrittura

Windows 7 offre un modo per disattivare questi errori. Quando appare il pop-up, fare clic sul pulsante "Modifica quando questi errori compaiono", quindi spostare il cursore al suo valore massimo. Ora tutti i programmi hanno accesso in scrittura a tutto il disco. Questo non è raccomandato. Il disco è ora vulnerabile ad una serie di attacchi e programmi creati sul computer potrebbe non funzionare su altre macchine. Se si prevede di distribuire o vendere i vostri programmi, prendere il tempo di cambiare loro di accedere stoccaggio sicuro.