6

ローカルの IIS Express でホストされている WCF サービスを Android アプリから接続しようとしています。現在、エミュレータでこれをテストしています。

サービスのローカル URL は http://locahost:40000/api/Authenticate

localhost が機能しないことはわかっていたので、コードで 10.0.2.2 を使用しました。

post = new HttpPost("http://10.0.2.2:40000/api/authenticate");

しかし、クライアント実行時の応答は「無効なホスト名」です

IIS Express の ApplicationHost.config を編集して、10.0.2.2 のバインド エントリを追加しようとしましたが、それもうまくいきませんでした

私が見逃しているものは他にありますか?

4

5 に答える 5

10

私が理解しているように、10.0.2.2 は 127.0.0.1 のエイリアスなので、それをapplicationhost.configサイトのバインディングに追加します。

 <site name="MySite" id="1">
    <application path="/" applicationPool="Clr4IntegratedAppPool">
      <virtualDirectory path="/" physicalPath="{yourpath}" />
    </application>
    <bindings>
      <binding protocol="http" bindingInformation="*:26013:localhost" />
      <binding protocol="http" bindingInformation="*:26013:127.0.0.1" />
    </bindings>
  </site>

最近、Visual Studio を使用しapplicationhost.configている場合、サイトに関連するファイルはソリューションのルートにc:\users\...あるフォルダーではなく、フォルダーにある可能性があることに注意してください。.vs\config

于 2016-07-12T13:31:43.653 に答える
10

私は他の何かを試してみました.IIS Expressのapplicationhost.configファイルバインディングセクション内にシステムのIPアドレスを追加しました.

<bindings>
<binding protocol="http" bindingInformation="*:40000:localhost" />
<binding protocol="http" bindingInformation="*:40000:192.168.5.118" />
</bindings>

サービスを呼び出すことができるようになりました

于 2012-08-03T17:45:42.037 に答える
-2

AndroidManifest.xmlInternet Permissionに、Network State、およびPermissionを追加します。Wifi

于 2012-08-03T16:12:51.643 に答える
-3
  1. 「ポート40000」とは何ですか???????
    私は間違いなくもっと低いポート番号を試してみます(32768未満のもののように;))
  2. androidmanifest.xmlにインターネット権限があることを確認してください
  3. 「api/authenticate」が定義され、IISで使用可能であることを確認してください
  4. Windowsファイアウォールがポート40000をブロックしていないことを確認してください
  5. 便利なツールは次のとおりです。
    • ping(「ping10.0.0.2」が可能です。OOTBWindowsで利用可能です)
    • telnet(「telnetlocalhost NNN」が可能です。これは、Windowsの機能に追加する必要があります)
    • FirefoxとFirebug
    • Wireshark
于 2012-08-03T16:27:31.497 に答える