Мне нужно получить HTML-разметку контроллера / действия для генерации PDF.Я сделал следующее:
public ActionResult Index()
{
Session["Message"] = "SESSION-MESSAGE";
String URL = "http://localhost:7401/Home/SuperComplex";
HttpWebRequest req = (HttpWebRequest)WebRequest.Create(URL);
req.CookieContainer = new CookieContainer();
for (int i = 0; i <= this.Request.Cookies.Count - 1; i++)
req.CookieContainer.Add(
new System.Net.Cookie(
name: this.Request.Cookies[i].Name,
value: Request.Cookies[i].Value,
path: Request.Cookies[i].Path, domain: this.HttpContext.Request.Url.Host)
);
using (var r = req.GetResponse())
{
using (var s = new StreamReader(r.GetResponseStream()))
{
var htmlToPrint = s.ReadToEnd();
Response.Write("<h1>" + htmlToPrint + "</h1>");
}
}
return View();
}
Учитывая вышеупомянутую ситуацию, в сеансе SuperComplex у меня должен быть сеанс ["Message"].Но по какой-то странной причине он туда не заходит.
Я проверил Session.SessionId - в обоих случаях он одинаков.
Кроме того, при втором или третьем запросе запрос истекает!1008 *
Опять же: http://localhost:7401/(S(SESSION_ID))/Home/About
При запросе в другом браузере: перехват сеанса происходит, но WebRequest умирает!: (
Помощь - кто-нибудь?