我希望能够访问HttpRequest中的底层Socket,以检查socket是否有套接字选项。
protected void Page_Load(object sender, EventArgs e)
{
Socket s = Request.????;
Object result = s.GetSocketOption(SocketOptionLevel.IP,xxx);
/// do something else
}
知道如何获取此信息吗?
请注意,代码在Azure上运行。
答案 0 :(得分:1)
不幸的是,我不得不做一个解决方法。我在另一个端口上创建了一个TCPListener,它在较低级别处理基本HTTP请求,但捕获套接字中的信息。主HTTP对此进行了重定向以找出ToS。
private void HandleAsyncConnection(IAsyncResult result)
{
// Accept connection
TcpListener listener = (TcpListener)result.AsyncState;
TcpClient client = listener.EndAcceptTcpClient(result);
client.Client.GetSocketOption(SocketOptionLevel.IP, SocketOptionName.TypeOfService);
...
// and then I do a redirect in HTTP
}