Desidero che l'applicazione Web MVC3 acceda a% APPDATA% (ad esempio C:\Users\MyUsername\AppData\Roaming
su Windows 7) perché memorizzo lì i file di configurazione. Pertanto, ho creato un pool di applicazioni in IIS con l'identità dell'utente "MyUsername", creato il profilo di quell'utente accedendo all'account e attivato l'opzione "Carica profilo utente" (era comunque true per impostazione predefinita). La rappresentazione è disattivata.Il pool di applicazioni IIS 7.5 utilizza% APPDATA% errato per l'utente personalizzato come identità
ora ho il problema che% appdata% (in C#):
appdataDir = Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData)
decide di c:\windows\system32\inetsrv
invece di C:\Users\MyUsername\AppData\Roaming
.
UPDATE: Più precisamente, il codice C# sopra restituisce una stringa vuota, in modo che Path.GetFullPath(Path.Combine(appdataDir, "MyAppName"))
antepone il percorso corrente al mio nome dell'applicazione, con conseguente c:\windows\system32\inetsrv\MyAppName
.
so che ho fatto questo lavoro prima con la stessa applicazione web su un computer Windows Server 2008 R2, e ora sto ricevendo questo problema con la stessa versione principale 7.5 di IIS sul mio Windows 7.
ho usato la stessa procedura di prima: creato un nuovo utente, connesso come tale utente per creare il profilo e le directory APPDATA, quindi aggiunto il pool di applicazioni con questa identità e infine aggiunto l'applicazione Web a questo pool.
Qualche idea?
È il vostro pool di applicazioni configurato come modalità integrata Classic o? – Kev
@Kev: modalità integrata. – AndiDog
Ho lo stesso problema. Ciò che è particolarmente strano è che il percorso per Environment.SpecialFolder.UserProfile funziona bene, e se io costruisco il percorso della cartella AppData da lì, funziona. – Jason