You should take a look at OWIN/Katana.
Based on your question – and with OWIN's ability to be hosted in any process – this might fit quite well and is the current way to go:
http://www.asp.net/aspnet/overview/owin-and-katana/getting-started-with-owin-and-katana
You'll find tons of sample on this topic. For your question related to parameters you could refer to this article.
Based on the first link you could do something like the follwing:
public class Startup1
{
public void Configuration(IAppBuilder app)
{
app.Run(context =>
{
var value = context.Request.Query.Get("someKey");
if (value == "foo")
{
// do something
}
context.Response.ContentType = "text/plain";
return context.Response.WriteAsync("Hello, world.");
});
}
}
A request could look like this: http://someServer:80/?someKey=foo