Comment consommer un webservice dans MVC?

Je suis super nouvelle pour MVC (en fait, c'est ma première affectation)

J'ai une bonne webservice en cours d'exécution, fonctionnelle, sur ma machine locale

http://www.codetrials.local/wcf/UserServices.svc?wsdl

et Dans mon application MVC, j'ai ajouté une référence de service, comme d'habitude, et puis dans mon Modèle.cs je suis en train d'essayer ceci:

 using (CodeTrials.UserServicesClient _client = new UserServicesClient())
  {
       UserWebsite = _client.GetUserWebsite(username);
  }

mais lorsque je tente de l'exécuter, j'ai toujours l'exception endpoint not found. Je peux y accéder à partir de mon (autre) asp.net projet et il fonctionne très bien, même code et tout et tout. Après quelques recherches, j'ai trouvé cette réponse j'ai modifié mon code ci-dessus pour:

  BasicHttpBinding binding = new BasicHttpBinding();
  EndpointAddress address = new EndpointAddress("http://www.codetrials.local/wcf/UserServices.svc");
 using (CodeTrials.UserServicesClient _client = new UserServicesClient(binding, address))
  {
       UserWebsite = _client.GetUserWebsite(username);
  }

mais maintenant, je reçois une nouvelle exception: There was no endpoint listening at http://www.codetrials.local/wcf/UserServices.svc?wsdl that could accept the message

Donc je suis à bout de ressources.

J'ai trouvé une question similaire mais ce n'est pas ce que je suis à la recherche d'.

Pouvez-vous svp me guider vers le droit chemin?

que suis-je pas en train de faire?

doit-on passer la consommation de webservice de Modèle de Contrôleur?

Grâce.

MODIFIER - C'est mon fichier de config system.serviceModel section. J'ai juste copier collé de la WCF client de test, l'outil gui sur le web.config car il n'a pas été généré par visual studio.

<system.serviceModel>
<bindings>
  <basicHttpBinding>
    <binding name="BasicHttpBinding_IUserServices" closeTimeout="00:01:00"
        openTimeout="00:01:00" receiveTimeout="00:10:00" sendTimeout="00:01:00"
        allowCookies="false" bypassProxyOnLocal="false" hostNameComparisonMode="StrongWildcard"
        maxBufferSize="65536" maxBufferPoolSize="524288" maxReceivedMessageSize="65536"
        messageEncoding="Text" textEncoding="utf-8" transferMode="Buffered"
        useDefaultWebProxy="true">
      <readerQuotas maxDepth="32" maxStringContentLength="8192" maxArrayLength="16384"
          maxBytesPerRead="4096" maxNameTableCharCount="16384" />
      <security mode="None">
        <transport clientCredentialType="None" proxyCredentialType="None"
            realm="" />
        <message clientCredentialType="UserName" algorithmSuite="Default" />
      </security>
    </binding>
  </basicHttpBinding>
</bindings>
<client>
  <endpoint address="http://www.codetrials.local/wcf/UserServices.svc/wcf/UserServices.svc"
      binding="basicHttpBinding" bindingConfiguration="BasicHttpBinding_IUserServices"
      contract="IUserServices" name="BasicHttpBinding_IUserServices" />
</client>
</system.serviceModel>
  • Pourriez-vous poster votre configuration des ordinateurs d'extrémité dans le service web lui-même?
  • Vous ne devriez pas avoir à faire ce genre de trucs dans le code si votre MVC application dispose d'un système adéquat.servicemodel web.entrée config. Pouvez-vous l'envoyer?
  • ajouté, merci.
  • ajouté, merci.
  • Pourriez-vous poster le plein de trace de pile d'exception?
  • votre adresse de point de terminaison a un doublon /wcf/UserServices.svc sur la fin - essayez de supprimer ce (bien que cela doit avoir été remplacé par votre codage en dur - ce qui vous devriez probablement supprimer). Ensuite, vérifiez votre adresse de point de terminaison du service - dans vos services d'application, web.config > système.serviceModel > services > service > point de terminaison. Pour tests locaux vous pouvez définir l'adresse="" pour écarter un problème.
  • hmm. Qui a l'air bien. Êtes-vous sûr de son dans le droit web.config alors? VS devez créer automatiquement lorsque vous ajoutez le service de référence (pour moi au moins). Un piège est que l'application MVC a deux web.les fichiers de configuration, il y a une deuxième à l'intérieur de la Vue de dossier par défaut. Alors que d'autres, je ne suis pas vraiment sûr de ce qui se passe.
  • vous êtes un épargnant de vie. Tout ce temps, j'ai essayé de modifier web.config et lorsque j'ai compilé, le web.debug.config était l'écraser et donc pas de point final. Maintenant, je l'ai changé directement dans le debug de config et il est tout beau. Vous pouvez poster votre commentaire est une réponse afin que je puisse l'accepter? Merci.
  • Fait, content d'avoir pu aider. 🙂

InformationsquelleAutor LocustHorde | 2011-08-15