0

Недавно мы обновили веб-сервер до Win2012 (с 2008 года) и начали использовать ActiveDirectory. На главном веб-сайте используется внешняя форма заказа, написанная на C# (ASP.NET 2.0). Все работало нормально на старом сервере, пока мы не переместились. Теперь я получаю ошибки при попытке чтения переменных Session в IE 11 (все работает с другими браузерами).Переменные сеанса Работа в Chrome, Firefox, но сбой в IE11

Это ошибка я получаю с линией заставляя его:

Server Error in '/' Application. 

Object reference not set to an instance of an object. 
    Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code. 

Exception Details: System.NullReferenceException: Object reference not set to an instance of an object. 

Source Error: 



Line 974: private void WriteTextConfirmation() 
Line 975: { 
Line 976: string sFolders_OrderForm = Session ["Folders_OrderForm"].ToString(); 
Line 977: string sOrderNumber = Session ["OrderNumber"].ToString(); 
Line 978: 

Источник файла: D: \ сайтов \ Форма заказа \ SubmitOrder.aspx.cs Line: 976

Трассировка стека:

[NullReferenceException: Object reference not set to an instance of an object.] 
    SubmitOrder.WriteTextConfirmation() in d:\Web Sites\Order Form\SubmitOrder.aspx.cs:976 
    SubmitOrder.Page_Load(Object sender, EventArgs e) in d:\Web Sites\Order Form\SubmitOrder.aspx.cs:1189 
    System.Web.Util.CalliHelper.EventArgFunctionCaller(IntPtr fp, Object o, Object t, EventArgs e) +24 
    System.Web.Util.CalliEventHandlerDelegateProxy.Callback(Object sender, EventArgs e) +41 
    System.Web.UI.Control.OnLoad(EventArgs e) +131 
    System.Web.UI.Control.LoadRecursive() +65 
    System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +2427 

Проблема заключается в том, что переменные Session, которые читаются, являются нулевыми. Они должны быть установлены в форме по умолчанию и переданы для использования в форме SubmitOrder. Эти переменные работают с FireFox и Chrome, но не работают в IE. Я не знаю, почему это произойдет.

ответ

0

Мы имели эта же проблема и установка состояния сеанса на cookieless в Web.config исправила нашу проблему.

0

Поскольку вы говорите, что это зависит от браузера, это должно быть настройка с браузером. Может быть, вы отключили cookies?

Обновление Я сделал несколько поисков, и похоже, что все еще может быть связано с печеньем.

Session variable empty in iis7 application

Другой распространенной причиной этой проблемы является, когда имя сервера содержит подчеркивания (например, DEV_TEST). Подчеркивания недопустимы как имена хостов, и могут помешать установке файлов cookie.

вопрос Fault

Этот сервер имеет несколько ответов, говоря то же самое: https://serverfault.com/questions/178733/iis-7-0-does-not-keep-session-variables

И еще так вопрос, говоря подчёркивания :: IE8 does not keep Session Variables

Больше от Google: https://www.google.com/search?q=iis+application+session+variables+IE

+0

Возможно, это скорее комментарий, поскольку он в значительной степени размышляет о одной из многих возможных причин. – Sampson

+0

@JonathanSampson True. Наверное, потому что я не мог воспроизвести ситуацию, которую мне было странно говорить: «У вас отключены файлы cookie». –

+0

Привет, Джонатан. В IE установлены файлы cookie. Я попытался создать еще один веб-сайт в IIS и скопировать файлы сайта на него, и, похоже, он работал иногда. В итоге я разместил сайт на главном веб-сайте и создал его как приложение IIS. Теперь он работает так, как ожидалось. Я хотел бы узнать, почему веб-сайт не будет работать сам по себе. – UltraJ

Смежные вопросы