私は初心者の C# 開発者です。単純な win7 サービスを作成しようとしています。
このサービスは、HTTPListener を開始し、着信ブラウザー リクエストをリッスンする必要があります。リクエストを受信すると、応答を返し、追加のリクエストをリッスンし続けます。一度に 1 つしかリクエストがない (そして非常に短い) ため、並列処理を行う必要はありません。
次のコードを使用しましたが、最初の応答の後、サービスが応答を停止します。どこかでループが必要になるかもしれませんが、API に慣れていないので、自分のやっていることが間違っているかもしれません。
ご協力ありがとうございました。
protected override void OnStart(string[] args)
{
HttpListener listener = new HttpListener();
listener.Prefixes.Add("http://localhost:9999/");
listener.Start();
listener.BeginGetContext(new AsyncCallback(OnRequestReceive), listener);
}
private void OnRequestReceive(IAsyncResult result)
{
HttpListener listener = (HttpListener)result.AsyncState;
HttpListenerContext context = listener.EndGetContext(result);
HttpListenerResponse response = context.Response;
byte[] buff = {1,2,3};
response.Close(buff, true);
}