IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Services Web Discussion :

lecture impossible de la dll


Sujet :

Services Web

  1. #1
    Membre à l'essai
    Femme Profil pro
    Étudiant
    Inscrit en
    Octobre 2010
    Messages
    40
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 34
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2010
    Messages : 40
    Points : 24
    Points
    24
    Par défaut lecture impossible de la dll
    Bonjour,

    J'essaie de créer un webservice, qui se trouve actuellement sur un serveur IIS. Seulement, j'ai cette erreur :


    Erreur de compilation

    Description :
    Une erreur s'est produite lors de la compilation d'une ressource requise pour répondre à cette demande. Veuillez consulter ci-dessous les détails relatifs à l'erreur en question, puis modifier votre code source de manière appropriée.

    Message d'erreur du compilateur:
    CS0246: Le type ou le nom d'espace de noms 'Npgsql' est introuvable (une directive using ou une référence d'assembly est-elle manquante ?)
    Npgsql.dll est dans les références, c'est lors de l'appel du "using npgsql" qu'il galère.

    Problème dans le code ? Je ne pense pas car lorsque je fais un débugage et que le webservice est déployé sur mon poste, ce problème n'intervient pas. Un petit peu comme si, sur le serveur IIS, il manquait un droit à mon .asmx pour avoir la possibilité de lire la .dll correspondante. Ma .dll se trouve bien dans le bon répertoire (le répertoire bin qui est rempli lorsqu'on demande à VS de déployer le service).
    Si quelqu'un sait d'où ça peut venir, expliquez en détail car je galère lorsqu'il s'agit de réseau (c'est pas moi qui gère le serveur).

    Merci d'avance pour vos réponses

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Février 2005
    Messages
    351
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Février 2005
    Messages : 351
    Points : 346
    Points
    346
    Par défaut
    Salut Laraannain,

    Si tu penses que cela vient d'un problème de droit d'accès sur ton .asmx, alros si tu fais un simple Service Web du style "Hello World", tu devrais avoir le même problème ???? Si c'est le cas, c'est qu'il y a quelque chose qui manque IIS, installation de framework ou autre.


    Cédric

  3. #3
    Membre à l'essai
    Femme Profil pro
    Étudiant
    Inscrit en
    Octobre 2010
    Messages
    40
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 34
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2010
    Messages : 40
    Points : 24
    Points
    24
    Par défaut
    En fait pour l'instant je fais un simple Hello World.
    celui-ci fonctionne.

    Quand j'ajoute la ligne d'import de dll, ça ne fonctionne plus et j'ai cette erreur.

    Quand je fais le débug et que ça ne passe donc pas par le serveur IIS, l'import ne pose aucun problème

    Sur le serveur IIS, tout ce que j'ai fait c'est autoriser les webservices asmx. Mais je ne connais pas la configuration antérieure du serveur puisque ce n'est pas moi qui le gère.

    Code c# : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    using System;
    using System.Linq;
    using System.Web;
    using System.Web.Services;
    using System.Web.Services.Protocols;
    using System.Xml.Linq;
    using Npgsql;
    using System.Data;
     
     
     
    [WebService(Namespace = @"adresse de déploiement")]
    [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
    // Pour autoriser l'appel de ce service Web depuis un script à l'aide d'ASP.NET AJAX, supprimez les marques de commentaire de la ligne suivante.
    [System.Web.Script.Services.ScriptService]
    public class Service : System.Web.Services.WebService
    {
        /*
         * Constructeur
         * 
        */
     
        public Service()
        { }
     
        /*
         * Destructeur
         * 
        */
     
        ~Service()
        { }
     
        /*
         * Méthodes
         * 
        */
     
        [WebMethod]
        public string HelloWorld() {
            return "Hello World";
        }
    }

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Février 2005
    Messages
    351
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Février 2005
    Messages : 351
    Points : 346
    Points
    346
    Par défaut
    Dans ton exemple, si tu enlèves simplement dans ton code:

    en laissant les références est-ce que cela fonctionne? Si oui, c'est qu'il y a un problème dans le "using..."! Mais si tu tapes dans ton code:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Npgsql.type var = new Npgsql.type()
    As-tu quelque chose?

    Cédric

  5. #5
    Membre à l'essai
    Femme Profil pro
    Étudiant
    Inscrit en
    Octobre 2010
    Messages
    40
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 34
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2010
    Messages : 40
    Points : 24
    Points
    24
    Par défaut
    Si j'enlève la ligne
    ça fonctionne.

    Seulement, si je le laisse et que je fais juste un Debug, ça fonctionne. Donc il trouve bien la dll. Je peux même utiliser ce que contient cette dll lorsque je suis en Debug.

    Si j'ajoute la ligne que tu indiques, ça ne compile pas. Je ne comprends pas vraiment ce que tu en attendais mais bon. type n'existe pas dans l'espace de nom Npgsql.

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Février 2005
    Messages
    351
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Février 2005
    Messages : 351
    Points : 346
    Points
    346
    Par défaut
    Si j'ajoute la ligne que tu indiques, ça ne compile pas. Je ne comprends pas vraiment ce que tu en attendais mais bon. type n'existe pas dans l'espace de nom Npgsql.
    ce que je voulais entendre par "type" c'était le nom de ta classe.

    au lieu d'écrire:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
     
    using  Npgsql;
     
    //de faire cela
     
     Npgsql.nom_classe var =
    Quand tu tapes dans ton code " Npgsql..." as-tu quelque chose qui vient? Si oui, est-ce cela à l'allure d'un namespace "{}" ou d'une classe ???

    Cédric

  7. #7
    Membre à l'essai
    Femme Profil pro
    Étudiant
    Inscrit en
    Octobre 2010
    Messages
    40
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 34
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2010
    Messages : 40
    Points : 24
    Points
    24
    Par défaut
    Salut,
    dsl pour le temps de réponse, j'avais le pont et j'évite de bosser chez moi en plus de mon lieu de stage.

    Alors,

    Lorsque je tape "Npgsql." il m'affiche les classes qui sont contenues dans le namespace Npgsql. Il les voit bien, il les affiche en couleur quand je les choisis, etc... (il reconnais ma dll et réussit à la lire quoi )

    au lieu du "using Npgsql;" j'ai placé cette ligne comme attribut :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Npgsql.NpgsqlConnection conn;
    il me colore bien le nom de la classe en bleu ciel, il la reconnait donc.

    Seulement, de la même manière, lorsque je publie mon service sur le serveur et que je veux l'appeler, il me sort la même erreur, localisée cette fois-ci à la ligne que je viens de citer.

    En fait, comme je le disais, je penche plus pour une erreur de configuration du serveur... Un droit à accorder ou quelque chose comme ça...

  8. #8
    Membre averti
    Profil pro
    Inscrit en
    Février 2005
    Messages
    351
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Février 2005
    Messages : 351
    Points : 346
    Points
    346
    Par défaut
    Salut Laraannain,

    Oui c'est étrange que cela! Peut être qu'il y a un problème de droit sur l'installation du serveur, mais je n'ai encore jamais rencontré ce cas!

    Encore une chose par rapport à ton problème, lorsque tu ajoutes ta références en allant chercher la dll, tu peux voir dans les "propriétés" lorsque tu cliques sur la dll s'il n'y a pas un truc spécial au niveau du chemin et pour voir si c'est ton problème est général, si tu fais une références à une autre ".dll" et que l'exécution de programme (sans debug) fonctionne sur ton PC et que cela ne fonctionne pas sur ton serveur! Ben cela confirmera ton hypothèse!

    Bon développement

    Cédric

  9. #9
    Inactif  
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Janvier 2007
    Messages
    6 604
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet NTIC

    Informations forums :
    Inscription : Janvier 2007
    Messages : 6 604
    Points : 13 314
    Points
    13 314
    Par défaut
    Citation Envoyé par Cédric B. Voir le message
    Salut Laraannain,

    Oui c'est étrange que cela! Peut être qu'il y a un problème de droit sur l'installation du serveur, mais je n'ai encore jamais rencontré ce cas!
    Je ne pense pas car le using n'est quun artifice de compilation pou "racourcir" le nom d'une classe en assumant le NS. Il n'a rigoureusement aucune influence sur l'exécution.

    D'ailleurs dans l'IL généré la notion de "using namespace" n'existe pas :

    donne exactement le même code que

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    using MonNs;
     .....
    MaClasse m;

    Je ne réponds pas aux questions techniques par MP ! Le forum est là pour ça...


    Une réponse vous a aidé ? utiliser le bouton

    "L’ennui dans ce monde, c’est que les idiots sont sûrs d’eux et les gens sensés pleins de doutes". B. Russel

  10. #10
    Membre à l'essai
    Femme Profil pro
    Étudiant
    Inscrit en
    Octobre 2010
    Messages
    40
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 34
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2010
    Messages : 40
    Points : 24
    Points
    24
    Par défaut
    Haha ! Pas idiot comme idée ! (comment j'ai pu ne pas y penser...)

    En effet, en créant une dll toute bête contenant un HelloWorld et en l'incluant dans mon webservice, j'ai exactement le même problème.
    Bon je vais fouiller sérieusement dans les droits accordées sur le serveur IIS et dès que j'ai une avancée je la mets ici.

    Merci beaucoup pour ton aide

  11. #11
    Membre à l'essai
    Femme Profil pro
    Étudiant
    Inscrit en
    Octobre 2010
    Messages
    40
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 34
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2010
    Messages : 40
    Points : 24
    Points
    24
    Par défaut
    Me revoilà,

    Après avoir fouillé un petit peu je me suis rendue compte que le serveur est en 64 bit (non mais quelle idée ). Ce qui peut expliquer que mon webservice ne fonctionne pas lorsque je l'y charge.

    Ma librairie Npgsql est introuvable en 64 bit mais étant en Open Source (comme quoi le libre c'est vachement utile parfois), je peux tenter de la recompiler moi même.
    J'ai trouvé que pour compiler un programe en 64 bit, il faut ajouter lorsqu'on compile la commande Seulement ma librairie est assez grosse et la compiler en ligne de commande ne va pas être drôle (je ne sais pas par où commencer).

    Pour m'en sortir, j'aurais besoin de trouver un moyen de récupérer le script de compilation executé par visual studio (j'y ajouterai simplement mon instruction).
    Sauf s'il y a moyen de modifier ça dans les options de compilation qui se trouveraient quelque part dans visual studio...

  12. #12
    Inactif  
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Janvier 2007
    Messages
    6 604
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet NTIC

    Informations forums :
    Inscription : Janvier 2007
    Messages : 6 604
    Points : 13 314
    Points
    13 314
    Par défaut
    Peut être récupérer directement la version 64 bits

    http://www.x64bitdownload.com/64-bit...downloads.html

    je ne sais pas si c'est le bon connecteur, vérifie/

    Je ne réponds pas aux questions techniques par MP ! Le forum est là pour ça...


    Une réponse vous a aidé ? utiliser le bouton

    "L’ennui dans ce monde, c’est que les idiots sont sûrs d’eux et les gens sensés pleins de doutes". B. Russel

  13. #13
    Membre à l'essai
    Femme Profil pro
    Étudiant
    Inscrit en
    Octobre 2010
    Messages
    40
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 34
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2010
    Messages : 40
    Points : 24
    Points
    24
    Par défaut
    Je ne peux pas ouvrir ce lien à partir de mon lieu de travail (firewall), mais si tu as fait un copier-coller de ce vers quoi envoie google, il s'agit en fait de la recherche du mot "npgsql" dans la recherche du site. (J'ai regardé hier soir de chez moi)
    Et les résultats ne sont pas la dll mais des programmes.

  14. #14
    Membre à l'essai
    Femme Profil pro
    Étudiant
    Inscrit en
    Octobre 2010
    Messages
    40
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 34
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2010
    Messages : 40
    Points : 24
    Points
    24
    Par défaut
    Salut,

    Continuons mon voyage épique à travers les WebServices avec Visual Studio...

    J'ai trouvé comment modifier la configuration de génération du projet pour compiler ma dll en 64 bit. C'est ici.
    J'ai donc recompilé ma dll en 64 bit, tout se passe bien, puis je l'intègre à mon web service. J'ai cherché comment faire pour compiler le web service en 64 bit mais les propriétés accessibles lorsqu'on est sur un projet normal ne le sont pas lorsqu'il s'agit d'un projet web.
    Bon je test quand même, erreur à la génération.

    Impossible de charger le fichier ou l'assembly 'Npgsql' ou une de ses dépendances. Tentative de chargement d'un programme de format incorrect.
    Même erreur que cette personne.
    Ce qui me gène alors c'est la réponse qui lui a été donnée :
    As Visual Studio is a 32-bit application, so the ASP.NET Development Server is designed to be in 32-bit.
    En clair : impossible de développer de ASP.NET en 64 bit.
    Je me dis que je suis sous VS2008, qu'avec 2010 c'est peut-être géré (parce qu'il y a tout de même de plus en plus de server en 64 bits hein). Idem pour Visual Studio 2010, je ne trouve pas où modifier la platteforme sur laquelle on publie le site.

    Je vais bientôt penser à programmer ce webservices en Java je crois... J'ai seulement tout à refaire... bon pas exactement, les langages sont similaires.

  15. #15
    Inactif  
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Janvier 2007
    Messages
    6 604
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet NTIC

    Informations forums :
    Inscription : Janvier 2007
    Messages : 6 604
    Points : 13 314
    Points
    13 314
    Par défaut
    Bonjour

    Citation Envoyé par Laraannain Voir le message
    Salut,

    Continuons mon voyage épique à travers les WebServices avec Visual Studio...

    J'ai trouvé comment modifier la configuration de génération du projet pour compiler ma dll en 64 bit. C'est ici.
    J'ai donc recompilé ma dll en 64 bit, tout se passe bien, puis je l'intègre à mon web service. J'ai cherché comment faire pour compiler le web service en 64 bit mais les propriétés accessibles lorsqu'on est sur un projet normal ne le sont pas lorsqu'il s'agit d'un projet web.
    Bon je test quand même, erreur à la génération.
    Désolé, mais j'ai l'impression qu'il y a quelque chose que je ne comprends pas; donc questions :

    - sur ta station de dev as tu les assemblies 64 bits .Net installées ? (si non, normal que tu ne puisse pas compiler en 64 bits).

    - une application (web service ou appli web) peut être très bien être déployée sans être compilée vers le server : il suffit que tes sources (tes .cs) soit sur le répertoire app_code, dans ce cas IIS se chargera de faire la compile au premier appel et tu es sur que la compilation se fait dans l'environnement ad_hoc (je ne procède jamais ainsi donc ne peut te donner plus de détails, mais c'est possible).

    - le framework 64 bits est il bien installé sur ton serveur ?

    Donc, vérifie ces points (le dernier en particulier).

    Pour moi il est clair que sur ton poste de dev, tu dosi tester avec la version 32 bits (d'ailleurs le serveir de test de VS est uniquement 32bits) et déployer une version 64 bits sur ton serveur .

    Je ne réponds pas aux questions techniques par MP ! Le forum est là pour ça...


    Une réponse vous a aidé ? utiliser le bouton

    "L’ennui dans ce monde, c’est que les idiots sont sûrs d’eux et les gens sensés pleins de doutes". B. Russel

  16. #16
    Membre à l'essai
    Femme Profil pro
    Étudiant
    Inscrit en
    Octobre 2010
    Messages
    40
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 34
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2010
    Messages : 40
    Points : 24
    Points
    24
    Par défaut
    Le Framework 3.5 est le même pour 32 ou 64 bit.

    Ton deuxième point est intéressant, je vais jeter un oeil à ça.

    Et pour le dernier, il me semble qu'il y est, mais je vais tout de même vérifier.

  17. #17
    Inactif  
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Janvier 2007
    Messages
    6 604
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet NTIC

    Informations forums :
    Inscription : Janvier 2007
    Messages : 6 604
    Points : 13 314
    Points
    13 314
    Par défaut
    Citation Envoyé par Laraannain Voir le message
    Le Framework 3.5 est le même pour 32 ou 64 bit.
    Exact; honte à moi, je l'avais oublié

    Je ne réponds pas aux questions techniques par MP ! Le forum est là pour ça...


    Une réponse vous a aidé ? utiliser le bouton

    "L’ennui dans ce monde, c’est que les idiots sont sûrs d’eux et les gens sensés pleins de doutes". B. Russel

  18. #18
    Membre à l'essai
    Femme Profil pro
    Étudiant
    Inscrit en
    Octobre 2010
    Messages
    40
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 34
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2010
    Messages : 40
    Points : 24
    Points
    24
    Par défaut
    Le serveur est doté du Framework 4.

    Même en mettant le "code behind", j'ai l'erreur à la publication du site. Il essaie de compiler ? Je lui ai rien demandé moi... -_-"
    Je ne trouve pas comment faire pour que ce soit compilé par le serveur, peut être que je ne tape pas les bons mots clés mais bon...Sur msdn je vois que c'est possible mais je ne vois pas comment le mettre ne place.
    en bref je rame...

  19. #19
    Membre averti
    Profil pro
    Inscrit en
    Février 2005
    Messages
    351
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Février 2005
    Messages : 351
    Points : 346
    Points
    346
    Par défaut
    Salut Laraannain,

    Par rapport au framework sur le serveur, est-ce que tu aurais le possibilité d'installer la version 3.5 ? Je sais que ce n'est pas forcément idéal, mais peut être que cela résoudrait ton problème.

    Cédric

  20. #20
    Membre à l'essai
    Femme Profil pro
    Étudiant
    Inscrit en
    Octobre 2010
    Messages
    40
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 34
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2010
    Messages : 40
    Points : 24
    Points
    24
    Par défaut
    Plutôt que de mettre le Framework 3.5 sur le serveur, j'ai migré mon webservice vers le 4. Et rien n'y fait. Il ne trouve pas mon répertoire app_Code ou bien le code qui est dedans, il ne veux de toute manière pas publier le site avec ma dll en 64 bits.

    edit :

    Au cas où quelqu'un arriverait sur le topic et n'aurait pas envie de tout lire jusqu'ici, petit résumé de la situation actuelle :

    Je cherche à présent à publier un service web sur un serveur IIS 64 bits à partir d'un poste en 32 bits.
    Je me demandais s'il était possible de faire tourner du 32 bit sur du 64 et il semblerait que oui, seulement :
    IIS cannot run 32-bit and 64-bit applications concurrently on the same server.

    source : www.microsoft.com
    Le serveur n'est pas utilisé que par moi donc il faut que je fasse ce service web en 64 bits. Mais comment ?

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. [Forms 6i]frm-40010 Lecture Impossible
    Par pjcejbpojo dans le forum Forms
    Réponses: 5
    Dernier message: 08/11/2017, 11h17
  2. Réponses: 6
    Dernier message: 23/04/2008, 10h15
  3. Java ME projet lecture impossible portable
    Par hugobosscool26 dans le forum Java ME
    Réponses: 3
    Dernier message: 11/12/2007, 22h20
  4. [FLV] Lecture impossible
    Par hush dans le forum Vidéo
    Réponses: 0
    Dernier message: 22/07/2007, 01h32
  5. Réponses: 2
    Dernier message: 28/10/2003, 10h55

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo