skip to Main Content

I am using the below code to start a web server that should be open to listen always but it is executing only once, I am deploying this in AKS – the container is not staying in running state, it is exiting after completing the job i.e., printing the response.

Please help me understand where I am doing wrong or my understanding itself is not right.
May be this is not the right piece of code to use if I want the container to be always running as a web server that listens to requests from other apps in the project.

string baseAddress = "http://localhost:9000/";

// Start OWIN host 
using (WebApp.Start<Startup>(url: baseAddress))
{
    // Create HttpClient and make a request to api/values 
    HttpClient client = new HttpClient();

    var response = client.GetAsync(baseAddress + "api/values").Result;

    System.Console.WriteLine(response);
    System.Console.WriteLine(response.Content.ReadAsStringAsync().Result);
    System.Console.ReadLine();
}

2

Answers


  1. If you want to listen incoming http requests, try something like that with HttpListener:

    var listener = new HttpListener();
    listener.Prefixes.Add("http://*:9000/api/values");
    listener.Start();
    while (true)
    {
        HttpListenerContext context = listener.GetContext();
        HttpListenerRequest request = context.Request;
        
        // do something here with request
        
        // default OK response
        context.Response.StatusCode = 200;
        context.Response.OutputStream.Write(Array.Empty<byte>(), 0, 0);
        context.Response.Headers.Add("Access-Control-Allow-Origin", "*");
        context.Response.Close();
    }
    
    Login or Signup to reply.
  2. If your code is already working for once. Thats should be help for loop

    while(true){
        var response = client.GetAsync(baseAddress + "api/values").Result;
    System.Console.WriteLine(response.Content.ReadAsStringAsync().Result);
    }
    
    Login or Signup to reply.
Please signup or login to give your own answer.
Back To Top
Search