문제

Android 휴대 전화에서 서버로 데이터를 전송하기위한 솔루션을 개발 중입니다 (C#/. Net으로 작성).

에뮬레이터로 WCF 서비스와 테스트를 만들었습니다. 그런 다음 휴대폰에서 로그인하려고하면 (홈 Wi -Fi 네트워크에 연결) 다음과 같은 예외 메시지가 표시되었습니다.

org.apache.http.conn.httphostconnectexception : 연결 http://192.168.1.5:8000 거부

AnyoneC가 구성 파일과 인터페이스를 살펴보고 연결을 활성화하는 방법에 대한 조언을 제공해야한다면 정말 감사합니다.

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>

상호 작용:

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

서비스 구현 :

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;
    }
}
도움이 되었습니까?

해결책

서비스에 연결하려면 공개 웹 서버에서 호스팅해야합니다. 192.168.1.5:8000을 사용하는 주소는 외부 세계 (전화)에서 액세스 할 수없는 홈 네트워크 주소 인 것 같습니다.

다른 팁

Vista OS를 사용하는 경우 방화벽에 주소를 추가해야합니다.

netsh http add urlacl url =http : //+: 8000/ user = domain user

LAN IP를 사용하여 에뮬레이터를 웹 서비스와 연결하십시오. http://192.168.1.78:8080/webservice

그러나 로컬 영역 연결이 활성화되어 있어야합니다. GOTO : 제어판 네트워크 및 인터넷 네트워크 연결

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top