samedi 17 novembre 2012

Erreur du serveur dans "Application" - Erreur d'application lors de l'utilisation base de données Access avec NET Framework


J'ai eu une demande que je travaillais où le client a insisté sur l'utilisation d'une base de données Access pour l'application. La requête a été exécutée sur une ferme à deux nœuds serveur pour la base de données Access devait être situé sur une machine séparés et accessibles sur le réseau. Lorsque vous mettez la batterie de serveurs 2000 à 2003 le client couru dans un problème accéder à la base de données.

Après avoir vérifié pour s'assurer qu'il n'était pas une erreur de la connexion à l'emplacement où la base de données a eu lieu, j'ai essayé de mettre la base de données sous le site et vous y connecter là-bas. Bien que le cadre a bien fonctionné et les données pourraient être accessibles.

Longue histoire courte, après quelques recherches et quelques longues heures sur ce que j'ai trouvé que la question était une combinaison de choses. D'abord sous IIS 6 toutes les applications sont exécutées sous les pools d'applications. Les pools d'applications ne passent pas l'identité ainsi qu'ils s'exécutent. Cela crée un problème lorsque vous essayez d'accéder à un lecteur distant. Pour résoudre ce problème, vous pouvez activer l'emprunt d'identité du compte que vous aviez IIS pour exécuter en tant qu'utilisateur anonyme. Pour ce faire, vous devez ouvrir le fichier web.config de votre application. Sous la puis insérez une ligne qui ressemble à ceci:

Cette ligne doit être utilisée que si vous désirez faire passer pour l'utilisateur que le compte que l'utilisateur est connecté en tant que sur leur bureau.

ou

"Password =" "/>

Cette ligne doit être utilisée que si vous voulez spécifier un compte spécifique à usurper l'identité.

Après je me suis tourné sur l'usurpation d'identité dans mon projet un autre problème est apparu. J'ai eu l'erreur dreded / Application. Cette question a été abordée dans l'article KB82719 Microsoft.

Quand une application. NET exécute elle utilise le dossier TEMP de l'utilisateur ASPNET, ou quel que soit l'utilisateur que vous avez spécifié pour exécuter vos applications. NET, de courir et de stocker les fichiers temporaires. Lorsque vous exécutez une base de données Access / application les fichiers temporaires sont ouverts, mais puisque vous êtes identité d'un utilisateur que l'utilisateur n'a pas accès pour ouvrir ces fichiers dans le répertoire temp ASPNET. La solution à cela est simple, allez dans la structure de fichiers et d'accorder l'accès au compte dans le dossier temp dans C: Document dossier settingsServerNameASPNETlocal paramètres. Ne pas donner l'accès à un compte dans le dossier Temp de sorte qu'il existe un risque de sécurité n'est pas créé....

Aucun commentaire:

Enregistrer un commentaire