Wie konsumieren ein webservice in MVC?

Ich bin super neu auf MVC (in der Tat, dies ist mein Erster Einsatz)

So, ich habe eine gute webservice-running, funktional, auf meinem lokalen Rechner

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

und In meiner MVC Anwendung, ich fügte hinzu, eine service-Referenz wie üblich, und dann in mein Modell.cs ich versuche dieses:

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

aber wenn ich versuche zu laufen, ich bekomme immer die Ausnahme endpoint not found. Ich kann Zugriff auf diese aus meiner (verschiedene) asp.net Projekt-und es funktioniert Prima, denselben code und alles. Nach einiger Graben um, ich fand diese Antwort ich veränderte meinen obigen code:

  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);
  }

aber nun bekomme ich eine neue exception: There was no endpoint listening at http://www.codetrials.local/wcf/UserServices.svc?wsdl that could accept the message

So, ich bin mit meinem Latein am Ende.

Ich stellte eine ähnliche Frage aber es ist nicht das, was ich Suche.

Können Sie bitte führe mich auf den richtigen Pfad?
was mache ich nicht richtig?
sollte ich eine Verschiebung der Konsum von webservice-vom Modell zum Controller?

Dank.

BEARBEITEN - Das ist meine config Datei system.serviceModel Abschnitt. Ich kopiere einfach eingefügt es von der WCF-client-test-gui-tool in web.config, denn es war nicht erzeugt durch 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>
Könnte Sie posten Sie Ihre die endpoint-Konfiguration in der web service selbst?
Sie sollten nicht erforderlich sein, dass die Sachen in code, wenn Sie Ihre MVC-app hat ein korrektes system.servicemodel web.Eintrag config. Kannst du es posten?
Hinzugefügt, danke.
Hinzugefügt, danke.
du bist ein Lebensretter. Alle diese Zeit war ich versucht zu ändern web.config und wenn ich kompiliert habe, die web.debug.config war überschrieben wird und somit kein end-Punkt. Nun, ich habe es direkt im debug-config und es ist alles in Ordnung. Kannst du deinen Kommentar als Antwort, so kann ich es akzeptieren? Danke.

InformationsquelleAutor LocustHorde | 2011-08-15

Schreibe einen Kommentar