WCFでwebHttp接続を有効にする方法?
-
21-08-2019 - |
質問
私は、サーバーには、Androidの携帯電話からのデータを転送するためのソリューションを開発しています(C#で書かれた/。NET)。
私は、WCFサービスを作成し、エミュレータのすべてとテストがうまく働きました。私は(自宅のWiFiネットワークに接続されている)携帯電話からログインしようとしたとき、私はその後、次の例外メッセージが表示されました。
org.apache.http.conn.HttpHostConnectException: http://192.168.1.5:8000するへの接続拒否した。
anyonecouldは、設定ファイルを見て、インターフェイスを与えるとの接続を有効にする方法上の任意のアドバイスを与える場合、私は本当に感謝しています。
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;
}
}
解決
あなたのサービスに接続するためには、パブリックWebサーバ上でホストされる必要があります。あなたは192.168.1.5:8000を使用しているアドレスが外部の世界(電話)からアクセス可能ではないホームネットワークアドレス、であるように見えます。
他のヒント
あなたはVistaのOSを使用している場合、あなたはあなたのファイアウォールにアドレスを追加する必要があります。
netshのHTTPはurlacl URLを追加= ます。http:// +:8000 / のユーザー= DOMAIN \ユーザー
EXについて,, Webサービスを使用してエミュレータを接続するために、あなたのLAN IPを使用してください: http://192.168.1.78: 8080 / Webサービスの
しかし、あなたのローカルエリア接続を有効にする必要があり 後藤:コントロールパネル\ネットワークとインターネット\ネットワーク接続