PC SOFT

FORUMS PROFESSIONNELS
WINDEVWEBDEV et WINDEV Mobile

Accueil → WINDEV 26 → Problème TSE accès au serveur HFSQL sur serveur Windows 2019
Problème TSE accès au serveur HFSQL sur serveur Windows 2019
Débuté par Pampi, 09 juin 2021 13:42 - 13 réponses
Membre enregistré
140 messages
Posté le 09 juin 2021 - 13:42
Bonjour,

J'ai installé un serveur HFSQL sur un serveur Windows 2019.

Je souhaite installer en TSE sur différents postes clients mon application qui doit accéder aux données sur le serveur HFSQL.
Sur la session sur laquelle est installée l'appli (Administrateur) , le TSE fonctionne.
Pour les autres sessions, même si elles sont en mode Administrateur ça plante.

Y a-t-il un paramétrage particulier à mettre en place ?

Merci par avance pour votre réponse.

Bon dév.

Pampi
Membre enregistré
1 398 messages
Popularité : +3 (3 votes)
Posté le 09 juin 2021 - 16:42
Hello,

"Ca plante" ? Il faurait etre plus précis.
Car du coup j'ai pas bien compris. Ya plusieurs serveurs ? ou un seul serveur ?

L'appli est installée sur un serveur, et les poste s'y connectent via le TSE ?
Membre enregistré
140 messages
Posté le 10 juin 2021 - 08:04
Bonjour,

Merci pour ta réponse...dont je me doutais.

Ce n'est pas moi qui gère la partie TSE (que je ne maitrise pas) et je n'ai pas davantage d'infos de la part du technicien qui s'en occupe...

Je me renseigne et je mettrai des infos plus précises dès que je les aurai.

Merci encore.

Bon dév.

Pampi
Membre enregistré
140 messages
Posté le 14 juin 2021 - 09:46
Bonjour,

Voici un peu plus d'infos fournies par mon collègue :

L’application est installée sur un serveur windows 2019.
Les utilisateurs se connectent en TSE sur ce serveur.
L’application fonctionne parfaitement depuis la session à partir de laquelle l’installation a été faite. Il s’agit d’une session administrateur.
Si je me connecte sur une autre session (même si elle a les droits admin), l’application ne se lance pas et retourne un message d’erreur :

Erreur à la ligne 476 du traitement Initialisation de GCPGI.
Vous avez appelé la fonction HOuvreConnexion.
Vous devez spécifier le nom du serveur dans la connexion HFSQL <>.

----- Informations techniques -----

Projet : GCPGI

Appel WL :
Traitement de 'Initialisation de GCPGI', ligne 476, thread 0
Fonction 'HOuvreConnexion', syntaxe 7

Que s'est-il passé ?
Vous devez spécifier le nom du serveur dans la connexion HFSQL <>.

Code erreur : 74008
Niveau : erreur fatale
Code erreur WD55 : 4008

Dump de l'erreur du module 'wd230hf64.dll' (23.0.62.0).
Identifiant des informations détaillées (.err) : 73270
Informations de débogage :
IEWDHF=85.4
Module=<WDHF>
Version=<23.0.62.0>
Fonction (7,210)
Informations supplémentaires :
EIT_PILEWL :
Initialisation de GCPGI (), ligne 476
EIT_DATEHEURE : 14/06/2021 09:15:32
EIT_TYPE_WDFILE : <4097>
EIT_IDCODE : <196608>




Problème de droits ?

Merci pour votre aide.

Bon dév.

Pampi
Membre enregistré
140 messages
Posté le 14 juin 2021 - 10:09
Encore une précision :

Les paramètres nécessaires à la connexion au serveur HFSQL se trouvent dans le fichier Menu.ini :

gsFichierIni est une chaîne = fRepExe() + "\Menu.ini"

//============================================================
// INFOS CLIENT SERVEUR
//============================================================
// Récupération nom source serveur
sNomSource = INILit("HFCS", "NOMSOURCESERVEUR", "",gsFichierIni)
// Récupération nom de la connexion
sNomConnexion = INILit("HFCS", "NOMCONNEXION", "",gsFichierIni)
// Récupération nom de la base
sNomBase = INILit("HFCS", "NOMBASE", "",gsFichierIni)
// Récupération nom utilisateur
sNomUtilisateur = INILit("HFCS", "NOMUTILISATEUR", "",gsFichierIni)
// Récupération mot de passe
sMotDePasse = INILit("HFCS", "MOTDEPASSE", "",gsFichierIni)


//=============================
// Connexion au serveur
//=============================
//SI HOuvreConnexion(sNomConnexion, sNomUtilisateur, sMotDePasse, sNomSource, sNomBase, sTypeConnexion, sTypeAccès) ALORS
SI HOuvreConnexion(sNomConnexion, sNomUtilisateur, sMotDePasse, sNomSource, sNomBase, sTypeConnexion, sTypeAccès,gsInfoEtendus) ALORS
HChangeConnexion("*",sNomConnexion)
SINON
Sablier(Faux)
Erreur(HErreurInfo(errComplet))
FinProgramme()
FIN



L'erreur se situe sur la ligne où se trouve le HOuvreConnexion.

Mon collègue a a priori donné tous les droits sur le dossier fRepExe()...
Membre enregistré
143 messages
Posté le 14 juin 2021 - 10:41
avez-vous précisé le port à la ligne HFCS de votre fichier ini ?
par exemple :
HFCS=server:4900
ou uniquement
HFCS=server
Membre enregistré
1 008 messages
Popularité : +11 (11 votes)
Posté le 14 juin 2021 - 11:06
Est tu certain que chaque user atteigne le même fichier INI ??
J'ai l'impression que le répertoire de stockage du ini serait users/app_data/nomduprogramme

du coup ton ini est créer lors de l'installation mais pour celui qui a installer et pas pour les autres

--
Bertin CARRIERE
SRL RGPD.Zen-Project.be
support@zen-project.be
www.zen-project.be www.linkedin.com/in/bertincarriere

+32(0)498/10.18.58
Co-President de l'asbl Be-Dev Association des développeurs Windev de Belgique
www.be-dev.be
Membre enregistré
140 messages
Posté le 14 juin 2021 - 11:46
Jean.VLD a écrit :
avez-vous précisé le port à la ligne HFCS de votre fichier ini ?
par exemple :
HFCS=server:4900
ou uniquement
HFCS=server


Bonjour,

Merci pour votre réponse.

Oui, port précisé :

[HFCS]
NOMSOURCESERVEUR="localhost:4900"
NOMCONNEXION="SERVEUR_GCPGI"
NOMBASE="GCPGI"
NOMUTILISATEUR="ADMIN"
Membre enregistré
140 messages
Posté le 14 juin 2021 - 11:52
Bertin - Zen-Project a écrit :
Est tu certain que chaque user atteigne le même fichier INI ??
J'ai l'impression que le répertoire de stockage du ini serait users/app_data/nomduprogramme

du coup ton ini est créer lors de l'installation mais pour celui qui a installer et pas pour les autres

--
Bertin CARRIERE
SRL RGPD.Zen-Project.be
support@zen-project.be
www.zen-project.be www.linkedin.com/in/bertincarriere

+32(0)498/10.18.58
Co-President de l'asbl Be-Dev Association des développeurs Windev de Belgique
www.be-dev.be


Bonjour,

Merci pour ta réponse.

Je ne comprends/sais pas ce qui devrait différencier une installation normale sur un serveur d'une installation à but d'utilisation par TSE...

Sur le serveur, le ini est dans le répertoire c:/appli, répertoire où se trouve également l'exécutable appli.exe.

Je précise enfin que mon appli fonctionne chez des dizaines de clients en mode non TSE (1 serveur + x postes clients).

Merci encore pour ton aide.
Posté le 14 juin 2021 - 12:26
Bonjour,
Nous avons le même principe (fichier ini) et nous travaillons qu'en TSE sans aucun pb. Pour moi cela vient de la manière dont est géré le TSE. Y'a t'il des disques de profil, gpo....

De notre côté nous veillons aussi à installer l'application en utilisant "Installer une application sur un serveur bureau à distance..." disponible dans le panneau de configuration.

Si tu peux, refais ton exe et tu mets un trace pour voir où il valire ton fichier ini et quelles sont les valeurs qu'il te retourne.

Cordialement,
Membre enregistré
900 messages
Popularité : +6 (6 votes)
Posté le 14 juin 2021 - 13:31
bonjour Pampi,

ce que Bertin vous indique, c'est que sur un serveur TSE il y a bon nombre de sécurité qui sont appliquée nativement.

Savez vous où à été installé votre logiciel ?
Si c'est dans Program Files , il faut faire attention car il s'agit d'un dossier avec des restrictions spécifiques.

Vous pouvez modifier votre logiciel , dans le code que vous avez présenté pour qu'il vous trace où il se situe, car il peu nativement faire des redirections dans un sous dossier du profil de l'utilisateur , dans virtual store etc...

un peu comme ceci :

gsFichierIni est une chaîne = fRepExe() + "\Menu.ini"

//============================================================
// INFOS CLIENT SERVEUR
//============================================================
// Récupération nom source serveur
sNomSource = INILit("HFCS", "NOMSOURCESERVEUR", "",gsFichierIni)
// Récupération nom de la connexion
sNomConnexion = INILit("HFCS", "NOMCONNEXION", "",gsFichierIni)
// Récupération nom de la base
sNomBase = INILit("HFCS", "NOMBASE", "",gsFichierIni)
// Récupération nom utilisateur
sNomUtilisateur = INILit("HFCS", "NOMUTILISATEUR", "",gsFichierIni)
// Récupération mot de passe
sMotDePasse = INILit("HFCS", "MOTDEPASSE", "",gsFichierIni)


//=============================
// Connexion au serveur
//=============================
si enmodetse() _et_ (sNomSource="" ou sNomBase="") alors
info("Erreur de configuration du fichier : "+gsFichierINI+" !")
fin
Membre enregistré
1 398 messages
Popularité : +3 (3 votes)
Posté le 14 juin 2021 - 14:22
L'idéale serait de s'assurer par une trace que gsFichierIni pointe bien vers le bon chemin, qu'il arrive a y acceder et qu'il arrive a lire son contenu.
Membre enregistré
140 messages
Posté le 14 juin 2021 - 15:09
Bonjour,

Merci à Christophe et François pour vos réponses.

C'est exactement ce que je vais faire, je vais tracer le chemin de mon fichier ini pour connaitre sa valeur en TSE.

Il est normalement dans le répertoire fRepexe().

Le ST PcSoft me conseille plutôt de l'installer dans un répertoire système comme par exemple SysRep(srAppDataCommun) de manière à être certain d’accéder au même répertoire quel que soit l’utilisateur.

Je vous tiens au courant dès que la mise à jour sera installée (sûrement ce soir).

Merci encore pour votre aide.

Pampi
Membre enregistré
140 messages
Posté le 14 juin 2021 - 15:53
J'ai finalement installé la mise à jour pour savoir...
Le fichier ini récupéré est bien le bon, il est en réalité sur c:\rep1\repappli.
Mon collègue me dit avoir donné à l'époque les droits adéquats au répertoire rep1 et à ses sous-répertoires.
Il vient de refaire la manip et, miracle, ça fonctionne !
Il ne s'agissait donc tout simplement que d'un problème de droits sur le fichier ini, tout ça pour ça...

Merci pour votre aide.

Bon dév.

Pampi