Je migre un jeu d'applications existant de Win XP vers Win 7. Nous avons une application tierce qui est lancée par et s'exécute dans la session de l'utilisateur qui accède à une base de données SQL Anywhere 9 locale via ODBC (lancé à la demande en utilisant dbeng9). Sur la même machine, nous avons un site Web ASP.NET qui accède également à la base de données SQL Anywhere locale via ODBC. Ces deux applications s'exécutent correctement dans Win XP car les deux processus s'exécutent dans la session 0.Problème d'isolation de session avec la base de données SQL Anywhere locale
Dans Win 7, le site ASP.NET rencontre une erreur ODBC indiquant que le fichier de base de données spécifié est déjà utilisé. Cela est dû au fait que l'application tierce démarre en premier et lance une instance de dbeng9 (via ODBC) dans la session de l'utilisateur (généralement la session 1). Ensuite, ASP.NET se déroule et tente de se connecter à la même base de données. Le pilote ODBC voit qu'une instance de dbeng9 n'est pas en cours d'exécution dans la session en cours (session 0) et tente de lancer une instance à laquelle il est impossible d'accéder au fichier de base de données car il est déjà utilisé par l'utilisateur connecté. Session 1.
Est-ce que quelqu'un a des suggestions pour résoudre les problèmes d'isolation de session avec les bases de données SQL Anywhere locales? Je pensais à exécuter dbeng9 en tant que service plutôt que d'autoriser ODBC à générer une instance à la demande. Cependant, étant donné que SQL Anywhere est livré avec le produit tiers, les PC n'ont pas dbsrv et je ne suis pas sûr de l'impact que cela aurait sur les licences.
Le site ASP.NET n'est accessible qu'à partir du PC local. L'exécution du site ASP.NET sur un serveur Web tiers entraîne-t-elle l'exécution dans la session de l'utilisateur? (Note: parce que cela fonctionne sur 1000 machines une option gratuite ou très faible coût est un must.)
- Est-ce le serveur de développement ASP.NET qui est livré avec Visual Studio redistribuable de cette manière?
- Est-ce que IIS 7 ou IIS 7 Express peut être configuré pour fonctionner en mode "local uniquement" dans lequel il s'exécute dans la session de l'utilisateur ?
Apparemment, l'exécution de "w3wp.exe/debug" forcera le processus de travail ASP.NET à s'exécuter dans la session de l'utilisateur connecté, mais je n'ai pas compris comment IIS lance le processus de travail de cette manière. – bobcat1506