Frage

ich eine Lösung entwickle für auf den Server Daten von Android-Handy Übertragung (geschrieben in C # /. NET).

Ich habe einen WCF-Dienst und das Testen mit Emulator alles hat gut funktioniert. Dann, wenn ich versuchte, von Handy einzuloggen (verbunden mit nach Hause WiFi-Netzwerk) bekam ich die folgende Ausnahmemeldung:

  

org.apache.http.conn.HttpHostConnectException: Anschluss an http://192.168.1.5:8000 verweigert

Ich würde wirklich schätzen, wenn anyonecould einen Blick auf die Config-Datei und die Schnittstelle geben und einen Rat geben, wie eine Verbindung zu ermöglichen.

web.config:

<configuration>
  <system.web>
    <compilation debug="true"/>
  </system.web>
  <system.serviceModel>
    <bindings>
      <webHttpBinding>
        <binding name="DefaultBinding"
                 allowCookies="true"
                 bypassProxyOnLocal="true" />
      </webHttpBinding>
    </bindings>
    <behaviors>
      <endpointBehaviors>
        <behavior name="RESTFriendly">
          <webHttp/>
        </behavior>
      </endpointBehaviors>
    </behaviors>
    <services>
      <service name="RESTServer.LoginService">
        <endpoint address=""
                  behaviorConfiguration="RESTFriendly"
                  binding="webHttpBinding"
                  bindingConfiguration="DefaultBinding"
                  contract="RESTServer.ILoginService" />
      </service>
    </services>
    <serviceHostingEnvironment aspNetCompatibilityEnabled="true" />
  </system.serviceModel>
</configuration>

Schnittstelle:

[ServiceContract()]
public interface ILoginService
{
    [WebGet(ResponseFormat = WebMessageFormat.Xml, UriTemplate = "/username={username}&password={password}")]
    [OperationContract]
    Message Login(string username, string password);
}

Service Umsetzung:

public class LoginService : ILoginService
{
    public Message Login(string username, string password)
    {
        Message message = new Message();
        SQLWorks sqlWorks = new SQLWorks();
        string strSession = sqlWorks.Login(username, password);
        string strMessage;
        message.Session = strSession;
        if(strSession == "")
        {
            strMessage = "Login failed! Please check your username/password!";
        }
        else
        {
            strMessage = "Login Successful";
        }
        message.ErrorMessage = strMessage;
        return message;
    }
}
War es hilfreich?

Lösung

Um Ihren Service zu verbinden, muss es auf einem öffentlichen Web-Server gehostet werden. Es sieht aus wie die Adresse, die Sie 192.168.1.5:8000 verwenden ist ein Heimnetzwerkadresse, die nicht zugänglich von der Außenwelt ist (ein Telefon).

Andere Tipps

Wenn Sie Vista Betriebssystem verwenden, müssen Sie die Adresse in Ihrer Firewall hinzufügen

netsh http urlacl url add = http: // +: 8000 / user = DOMAIN \ user

Verwenden der LAN-IP Ihren Emulator mit Web-Service zu verbinden ,, Für EX: http://192.168.1.78: 8080 / webservice

Aber Ihre LAN-Verbindung muss aktiviert Gehe zu: Systemsteuerung \ Netzwerk und Internet \ Netzwerkverbindungen

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top