1

.NET を使用して http サーバーを設計しています。私は基本的に HttpListener を使用して、クライアントから http リクエストを取得します。最初に URL を指定し、その URL を HttpListener に追加する必要があります。次に、HttpListener にリッスンを開始させる必要があります。リッスンを開始すると問題が発生します。リッスンを開始すると、例外が生成されます。

コードは次のとおりです。
string url = "http://*:80/"; //ここで、* は私の PC の IP アドレスです。
リスナー = 新しい HttpListener();
listener.Prefixes.Add(url);

listener.Start(); //this is where exception occurs, it couldn't start!!!

私の推測では、netsh を使用してその URL を登録する必要があります。それが正しいか?

4

1 に答える 1

0

これが発生する可能性がある 2 つの単純な理由を考えることができます。

  • ポート 80 (IIS など) で既にリッスンしている何かがあります。
  • ポート 80 でリッスンする権限がありません

例外は、これらのどれが該当するかを示す必要があります。例外メッセージに注意を払うことは常に重要です。多くのエラーは、例外を注意深く読むだけで修正できます。

おそらく、別のポートでリッスンを開始するのが最も簡単です。

編集:いくつかの実験を実行して、私が見つけた:

  • ラップトップでポート 8080 が使用されている (または少なくともアクセスできない) ようです。ただし、ポート 8888 を使用すると、12345 と同様に正常に動作します。その面で実験してください。
  • IP アドレスの代わりに "localhost" を使用できますが、127.0.0.1 でも管理者としてプログラムを実行する必要があります。管理者として、任意のネットワーク インターフェイスを使用できます。
于 2013-11-01T06:57:28.733 に答える