2012-02-20 4 views
0

私のアンドロイドアプリケーションでWCF RESTサービスを使用する際に問題があります。 クライアントはUnknownHostExceptionをスローし続けます。HttpGetはUnknownHostExceptionを返します

HttpClient httpclient = new DefaultHttpClient(); 
HttpGet request = new HttpGet("http://windows"); 
ResponseHandler<String> handler = new BasicResponseHandler(); 
String result = httpclient.execute(request, handler); 

WCFサービスはIISExpressます(http://窓:80)でホストされ、それがブラウザにだけでなく、(私は、Androidクライアントを開発しています)同じLAN内のリモートボックスにとlocalY動作します。

マニフェストでAndroidのアクセス許可はOKです。google.comでHttpGetを試してみましたが、問題なく動作しています。

ブラウザが(両方のコンピュータで)問題なく開いている間に、IISExpressでLANのリモートコンピュータにホストされている(http:// windows:80)

ありがとうございます。

+0

あなたはコンピュータ名の代わりにサーバーのダイレクトipを使ってみましたか? – denolk

+0

それは完全なURLではない、それはマシンのIPアドレスを持っていません。 – jeet

+0

TeddyBearFrのanwsersのコメントを確認してください – no9

答えて

1

Windowsの場合、ほとんどの場合、http://windowsにアクセスできます。デフォルトのドメインポストフィックス/検索スコープでは、完全修飾ドメイン名 "windows.x.x"が返されます(x.x =内部ドメイン)。あるいは、WINSを使用してホストを解決している可能性があります。

アンドロイドまたはアンドロイドのエミュレータでは、DNS検索のスコープ/ポストフィックスが同じではない可能性があるため、FQDN(完全修飾ドメイン名、つまりwindows.yourdomain.com)を指定する必要があります。

例をするために:

は、DNSサーバーAndroidやAndroidのエミュレータを使用しようとしていることを確認するために「nslookupコマンド」(Windows)または「掘る」/「ホスト」(Linux)のようなDNSクエリツールを使用しますWindowsの

使用 "ipconfig/allと" あなたのDNSサーバとDNSドメイン接尾辞を見つけるために...

c:\> ipconfig /all 

Windows IP Configuration 

Host Name . . . . . . . . . . . . : MYLAPTOP 
Primary Dns Suffix . . . . . . . : mydomain.com <<<< 
Node Type . . . . . . . . . . . . : Hybrid 
IP Routing Enabled. . . . . . . . : No 
WINS Proxy Enabled. . . . . . . . : No 
DNS Suffix Search List. . . . . . : mydomain.com <<<< 

Ethernet adapter Local Area Connection: 
Connection-specific DNS Suffix . : mydomain.com 
Description . . . . . . . . . . . : Intel(R) 82577LM Gigabit Network Connection 
Physical Address. . . . . . . . . : xx-xx-xx-xx-xx-xx 
DHCP Enabled. . . . . . . . . . . : Yes 
Autoconfiguration Enabled . . . . : Yes 
IPv4 Address. . . . . . . . . . . : 192.168.42.101 (Preferred) 
Subnet Mask . . . . . . . . . . . : 255.255.255.0 
Lease Obtained. . . . . . . . . . : Wednesday, February 29, 2012 9:28:23 AM 
Lease Expires . . . . . . . . . . : Thursday, March 08, 2012 9:28:22 AM 
Default Gateway . . . . . . . . . : 192.168.42.1 
DHCP Server . . . . . . . . . . . : 192.168.42.5 
DNS Servers . . . . . . . . . . . : 192.168.42.6 <<<< 
            192.168.42.7 
Primary WINS Server . . . . . . . : 192.168.42.6 
Secondary WINS Server . . . . . . : 192.168.42.7 
NetBIOS over Tcpip. . . . . . . . : Enabled ... 

以上のことから、我々は我々のDNSドメインが "mydomain.com" であることがわかり、私たちの主要なことができますDNSサーバーは "192.168.42.6"です。 DNSサーバーは "windows.mydomain.com"(またはこの場合はドメインが何であれ)を解決できるはずです。

サーバーは、完全修飾ホスト名を解決できることを確認:

c:\> nslookup windows.mydomain.com 192.168.42.6 

(DNSサーバに192.168.42.6を置き換える)

をあなたが(窓が登録というのが私の場合に想定し、このような何かを取得する必要があります192.168.42.106としてDHCPとDNSサーバ(群):

C:\>nslookup windows.mydomain.com 192.168.42.6 
Server: dns01.mydomain.com 
Address: 192.168.42.6 
Name:  windows.mydomain.com 
Address: 192.168.42.106 

あなたは...のような無効な応答を取得する場合

*** dns01.mydomain.com can't find windows: Non-existent domain

次に、あなたが探しているホストは、付属のDNSドメインではありませんので、あなたのAndroid /エミュレータのデフォルトのDNSドメインとDHCPの間に不一致があるかもしれません。

また、上記のようにIPアドレスを直接使用することもできます。

1

"windows"ホスト名をIPに置き換えてみましたか?

+0

WCFサービスはhttp:// hostname:80のIISExpressで動作しますが、IISホームページはIPでホストされています。 – no9

+0

私はIISExpressでそれを得るためにhttp://www.hanselman.com/blog/WorkingWithSSLAtDevelopmentTimeIsEasierWithIISExpress.aspxに従ってきました。私はIISを置いてIPで実行するようにIISExpressを設定すべきですか?コンピュータのホスト名を使ってANDROIDアプリケーションでサービスを利用する方法はありませんか? – no9

+0

jitendra sharmaによれば、 "windows"は完全修飾ドメイン名ではありません。最初にFQDNを試してください。それは私が思うIIS問題ではなく、DNSの問題です。 – Sly

関連する問題