Bo Vistisen Ответов: 3

У меня странная проблема с хромом и куки-файлами.


1)	I have developed an ASP.NET App (non-core) in Visual Studio 2019 using Edge as standard browser. Just a simple app to register and hold items for a local achieve.

2)	Then I move it to the host server that holds a security certificate. www.arkivar.dk
It works with Edge but not with Chrome. The problem with Chrome seems to be with reading ot writing of the cookies. The App only uses technical cookies to remember dropbox selection.

Without these cookies the web app is useless with a Chrome browser!


Что я уже пробовал:

3)	To figure out the problem lead me to try and use Chrome as standard I VS. 
It all works here on the localhost. But again moving the app to web Chrome fails to read or write cookies.
The very strange thing is that in this Chrome browser instant, started by VS, it works also on the host server. 
But starting a new Chrome browser instant it is all the same - it is not working!

4)	To visualize the problem I introduced a message on the top bar: Cookies-OK! if it can read the cookies.
5) Not being sure what is happening on the server side, I have tried log actions to a file. But still I am not sure if it is the reading or writing that does not work.

I don’t know what is happening. I don’t even have a clue. 

Please enlighten me or ask for more info.

Regards
Bo Vistisen

Richard MacCutchan

Это может быть проблема с разрешениями. Проверьте настройки Chrome, чтобы убедиться, что он имеет правильный доступ к своим папкам конфигурации.

3 Ответов

Рейтинг:
20

Bo Vistisen

Мне потребовалось много времени, чтобы найти этот жучок.
Оказалось, что это был Session_End, который был вызван, и переменные сеанса были потеряны.
Поняв, что ошибка была вызвана запуском Session_End в середине приложения, ошибка не могла скрыться!

Sub Session_OnStart()

    ' Administrator will only be allowed a certain number of login attempts
    Session("MaxLoginAttempts") = 3
    Session("LoginCount") = 0

    ' Track whether they're logged in or not
    Session("LoggedIn") = "No"

    Dim intTotal_visitors As Integer
    'set timeout to 20 mins
    Session.Timeout = 1
    Session("Start") = Now

    Application.Lock()
    Application("UseCookies") = "yes"
    Application.UnLock()

    'increase count by 1
    Application.Lock()
    Application("visits") = Application("visits") + 1
    Application.UnLock()
    intTotal_visitors = Application("visits")
    Session("VisitorID") = intTotal_visitors


Тайм-аут сеанса обычно должен составлять 20 минут, но по какой - то причине он был установлен на 1 минуту.

Насколько тупым может быть программист? - Я!

Спасибо что посмотрели
Бо


Patrice T

Если это решит вашу проблему, вы можете принять свой ответ, он закроет вопрос.

Рейтинг:
1

Bo Vistisen

Извините за активацию неправильного ключа для комментариев.
И все же решение не найдено.
Бо


Richard MacCutchan

Это не решение проблемы. Вы должны использовать ссылку "задать вопрос или комментарий" под сообщением, на которое вы хотите ответить.

Рейтинг:
0

OriginalGriff

Вы понимаете, что Edge и Chrome не делятся файлами cookie? Что они Бост хранят свой собственный, независимый набор?

Если это не проблема, вам придется показать нам соответствующий код, который вы использовали для его чтения - файлы cookie прекрасно работают во всех браузерах, так что это то, что вы сделали, а не что-то специфичное для Chrome

И... помните: если это веб-сайт и у вас есть какие-либо пользователи из Европейского союза, то применяется GDPR, а это означает, что вам, вероятно, нужно получить разрешение пользователя на их хранение и извлечение.


Bo Vistisen

Спасибо вам за обратную связь.

Я только создаю куки и пишу куки, не думая о браузере, который будет смотреть на веб-приложение. Разработка в Visual Studio с Chrome в качестве браузера по умолчанию работает нормально.

Проблема начинается, когда я загружаю код на хост. Здесь Edge работает идеально, а Chrome вообще не работает - с куки. Я не думаю, что должно быть что-то не так с обычным кодом cookies, так как они работают с Chrome в среде VS develope.

Насчет GDPR я не уверен. Я никогда не спрашиваю разрешения пользователей на использование файлов cookie вообще, потому что я не храню и не сохраняю никакой информации о пользователе. Печенье я храню по большей навигации печенье к следующему .aspx-страницы. Может быть, здесь я ошибаюсь?
В конце концов мы, вероятно, обнаружим, что это моя ошибка. Но где и как.

Может ли это быть настройка в Chrome, которая делает эту разницу?
Согласно вашему ответу, не должно быть возможности иметь два сеанса одного и того же браузера, который действует по-разному.

И все же имейте в виду, что во время разработки локально, с VS2019 и Chrome по умолчанию, это работает. Это первый раз, когда он идет на сайт, что Chrome терпит неудачу.

Спасибо, Бо

OriginalGriff

Я бы предположил, что это ваш код - в частности, что он использует что - то, что работает, когда сервер и клиент являются одной и той же машиной, но которая терпит неудачу, когда они разделены, - и есть огромное количество вещей, которые вы могли бы сделать там, от "попытки использовать MessageBox" до "прямого доступа к файлам".
Код C# работает на сервере, поэтому он имеет доступ только к ресурсам сервера - поэтому, если ваш код c# каким-либо образом использует "клиентские ресурсы", ваш код будет отлично работать в dev, но потерпит неудачу в prod.

Извините, но мы не можем быть более конкретными: у нас просто нет доступа к вашему коду или системам.

Bo Vistisen

Еще раз: спасибо Вам, OriginalGriff.

Я много чего перепробовал на прошлой неделе, потому что меня раздражает, что Chrome терпит неудачу.
Я был в деталях и пробовал простые тесты, но каждый тест терпит неудачу с Chrome.
Я действительно нашел несколько проблем в своем коде, но ничего такого, что действительно изменило бы ситуацию.

Тогда я выбрал другой подход. Где на самом деле работает веб-приложение?

Приложение (www.arkivar.dk) является простым приложением волонтерской благотворительной утилиты и имеет доступ к пяти спискам:
Журналы, архивы, артефакты, фотографии и поиск.
Каждый список содержит по крайней мере один выпадающий список, который использует файл cookie для запоминания.
Какой браузер может изменить позицию в списке и сохранить выбранные варианты?

На моем компьютере работает Windows 10: Edge и Firefox can. Хром терпит неудачу!
На моем планшете Samsung Android: недавно установленные Edge и Firefox могут. Хром терпит неудачу!

И потом, чтобы не забыть странную вещь: браузер Chrome instant На моем ПК, запущенный MS Visual Studio, работает, когда он используется в размещенном веб-приложении.

Что можно извлечь из этого? Проблемы с кодированием или проблемы с Chrome?

Спасибо, Бо