2010-02-22 5 views
1

J'utilise un composant tiers qui crée des fichiers de paramètres basés sur des chemins de fichiers codés en dur, c'est-à-dire qu'ils sont compilés dans la DLL, par ex.ASP.NET MVC - Chemins de site Web

%APPDATA%\Vendor\Settings.ini

J'ai créé quelques applications console/de services qui utilisent ce et fonctionnent très bien. Cependant, j'essaie maintenant d'utiliser une approche similaire via mon application Web ASP.NET MVC et le fichier de paramètres ne semble jamais écrire!

Habituellement, si l'application est en cours d'exécution sous mon acconut par exemple le fichier serait écrit à quelque part comme:

C:\Documents and Settings\James\Application Data\Vendor\Settings.ini

Je pensais que si le site AppPool était en cours d'exécution sous le même compte le fichier serait enregistré au même endroit .... Cependant, il n'apparaît jamais. Le compte est un compte d'administrateur exécuté sous Windows Server 2003.

Des idées?

Merci.

Répondre

0

Impossible de trouver une solution à cela, j'ai donc décidé de développer un service WCF local (qui créerait le fichier de paramètres dans le bon chemin de répertoire) et y ai accédé via mon application web.

1

Avez-vous vérifié si le fichier de paramètres est créé dans le dossier App_Data de l'application Web? Si non, pourriez-vous mettre un fichier de paramètres existant là et voir s'il l'utilise?

+0

Vérifiez le dossier App_Data, rien n'y étant écrit. Chose étrange, cela fonctionne très bien sur ma machine de développement lorsque je cours sous Visual Studio qui exécute Windows 7 x64 qui est par conséquent IIS7.0. – James

+0

Fonctionne sur votre machine dev car le serveur Web fonctionne avec vos informations d'identification. Avez-vous essayé de fournir un fichier de paramètres dans App_Data et de vérifier s'il l'utilise? – tvanfosson

+0

Oui essayé de placer un fichier de paramètres dans le App_Data n'a jamais fonctionné. Où ce répertoire particulier résoudrait-il lors de l'exécution via un site Web? Est-ce généralement le dossier App_Data? Peut-être que je devrais juste créer manuellement un fichier de paramètres et le placer dans le dossier attendu plutôt que de compter sur la DLL pour le faire pour moi. – James

0

Il ne s'agit pas du compte webpool, mais du compte de l'utilisateur invité. Accédez aux propriétés de votre site dans IIS, Sécurité du répertoire et dans l'accès anonyme cliquez sur le bouton Modifier, vous verrez que le compte a été utilisé lorsque quelqu'un accède à votre site.

+0

@VinTem, pour l'instant je ne permets pas l'accès «anonyme» au site, il est défini sur «Authentification Windows intégrée». J'ai un journal qui vérifie à quel compte le site Web est exécuté et c'est le compte qui est en cours d'authentification. Ce qui rend d'autant plus inhabituel pourquoi les paramètres sont écrits sur le bon chemin. – James