Remoting : Impossible de trouver l'assembly 'BLLServeur

Résolu
dachir Messages postés 2 Date d'inscription mercredi 19 mai 2004 Statut Membre Dernière intervention 5 novembre 2009 - 17 juil. 2009 à 11:49
dachir Messages postés 2 Date d'inscription mercredi 19 mai 2004 Statut Membre Dernière intervention 5 novembre 2009 - 5 nov. 2009 à 11:13
Bonjour à tous,
J'aimerais sortir d'un problème qui me cause du soucis depuis un moment.
J'ai réaliser une petite appli remoting avec une base de donnée en sql server: classique!!
Afin de mettre en pratique mes nouvelles connaissances en remoting, j'implémente une solution en couches. donc j'ai créé plusieurs projets:
- Interface.dll (classe Structures et Interfaces qui imports structures)
- SvrUnites.dll qui implémente Interface et qui hérite du MarshalByRefObject
- cltUnite qui implémente Interface aussi
- application windows appSvl.exe qui imports interface et cltUnite et tout ce qui concerne System.Runtime.Remoting.Channels.Tcp
- application console Remoting.exe qui imports SvrUnite.

Quand je lance Remoting qui expose les objets serveur c'est ok
Mais quand je fais appel a un objet distant via le proxy il me met:

L'exception System.Runtime.Serialization.SerializationException n'a pas été gérée
  Message="Impossible de trouver l'assembly 'BLLServeur, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null'.


J'ai configurer le remoting dans un fichier de configuration app.config que voici

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <system.runtime.remoting>
    
      <channels>
        <channel ref="tcp" port="1234" />
      </channels>
      <service>
        <wellknown mode="Singleton"  type="appSvl.BLLServeur.svrUnite, BLLServeur" objectUri="svrUnite.rem"/>
      </service>
    
  </system.runtime.remoting>
</configuration>


Merci pour votre attention.

Que le code soit avec vous. Ne virez surtout pas du coté obscur du code.

1 réponse

dachir Messages postés 2 Date d'inscription mercredi 19 mai 2004 Statut Membre Dernière intervention 5 novembre 2009
5 nov. 2009 à 11:13
J'ai apres des mois et des mois de stress trouvé une solution.
En fait il y avait deux solutions:
[list]
[*] Installer mes assemblys partagés dans le GAC
[*] Trouver l'emplacament exact ou l'application s'attend à retrouver l'assembly BLLServeur
/list
La première solution vous évite un bain de stress. Toutefois la seconde te permet de mieux controler ton application. C'est pour ça que j'ai opter pour le bain de stress.
Voila la procédure pour connaître l'emplacement de l'assembly pour bien tuner une application en .net Remoting:
[list]
[*] Activer l'Assembly Binding Log Viewer (Fuslogvw.exe) en affectant 1 à la valeur de registre HKLM\Software\Microsoft\Fusion\LogResourceBinds
[*] Lancer l'Assembly Binding Log viewer qui permet de voir les assembly qui ont eu des problemes
[*] Mettre les assemblys qui ont bugger au bon emplacement
/list
Merci à tous
3
Rejoignez-nous