2012-03-30 4 views
2

Windows 7マシンでC#コードを使用してポート80にアクセスしようとしているときに問題が発生しています。C#を使用してWindows 7マシンでポート80にアクセスしようとしたときにエラーが発生しました

このエラーは、コードの同じ部分は、Windows XPマシン上で正常に動作している間だけのWindows 7マシンで発生することが起こります。

私たちが使用しているC#コードは、コアソケットプログラミングを利用しています。以下は、私は

としてエラーが出るポート80にアクセスしようとした場合、我々はポート80

public static int rx_Port = 80; 

IPEndPoint ip_rx = new IPEndPoint(IPAddress.Any, rx_Port); 

にアドレスを結合しているスニペットがある「の試みは、ソケットにアクセスするためになされました方法は、私はファイアウォールを介して通信するために、すべてのカテゴリの下にポート80へのアクセス許可を与えていることをダブル確信してそのアクセス許可」

によって禁止します。ポート80は、Windows 7マシンに指定されているが、コードの同じ部分は、Windows XPマシン上で正常に動作するかどう

であっても、簡単なクライアントサーバプログラムが動作しません。私は本当に続行する方法について

任意の考え...ここで何が起こっているか作ることができないのですか?

+2

ポート80はすでに使用されていますか? ( 'netstat -a -o> ports.txt' - 次に 'LISTENING'をスキャンしてください)アンチウイルスまたはマルウェア対策ソフトウェアを実行していますか? (例:Norton Internet Securityなど)別のポートを使用しようとしましたか? (例:81,255,3600) –

+2

もし私がnetstat -a -oを実行すると、そのポート80がWindows 7マシン上でpidが4のプロセスによって使用されているのが見えて、それを殺すことはできません。アンチウィルスのないクリーンなシステムです。このプログラムは、80以外のポートを指定しても正常に動作します。 –

+1

おそらくIISがインストールされているようです。停止する必要があります。 –

答えて

2

カーネルモードのHTTPドライバHTTP.sysが実行されています。

netshを使用して設定できます。例えば

http://msdn.microsoft.com/en-us/library/windows/desktop/cc308384(v=vs.85).aspx

は、IPは、それがリッスンしているアドレスを確認します

netsh http show iplisten 

あなたはその後、(例えば)

netsh http delete iplisten address=1.1.1.1 

でそれらを削除することができます。

しかし、あなたがWindowsアプリケーションを作成している場合、私は、あなたはおそらく、むしろそれを無効にするよりも、IISと協力したいお勧めします。 HttpListenerを使用する場合は、IISとポートを共有するように設定し、指定した特定のURL接頭辞の要求を受け取ります。

ドキュメントは(&はこの自分自身を使用したことがない)単純な例があります。

http://msdn.microsoft.com/en-us/library/system.net.httplistener.aspx

あなたが使用したいURL接頭辞に、アプリケーションのユーザーIDの許可を与えるnetshを使用する必要があります。

+0

ベンに感謝します。私はこの問題をhttpListenerを使って解決できました –

関連する問題