2015-04-29 4 views
0

Привет, я разработал сайт asp.net, который развертывается на двух серверах. Этот сайт отлично работает, когда я обращаюсь к сайту с использованием IP-адреса серверов по URL-адресу, например, https://123.123.123.12/Pagename.aspx. Когда я обращаюсь к сайту с использованием DNS-имени loadbalancer (https://DNSName/Pagename.aspx) и webgate, некоторые страницы бросают следующие исключения:Недопустимый аргумент обратной связи или обратного вызова при использовании loadbalancer и webgate

«Недопустимый аргумент обратной передачи или обратного вызова» или «Сериализованные данные недействительны».

Это происходит с перерывами. Это та же страница, некоторое время показывает правильные данные и иногда выдает исключение.

Когда я остановил сайт (IIS) на одном из серверов, все страницы работают так же, как и без исключений.

Я также проверил ключи машины на обоих серверах, значение ключа машины одинаково на обоих серверах. Там есть другие веб-сайты на тех же серверах, которые отлично работают с URL-адресом loadbalancer DNS (//DNSName/Pagename.aspx) и webgate.

Может кто-нибудь помочь мне с этим?

Ниже StackTrace

<Description>An exception of type 'System.ArgumentException' occurred and was caught.</Description> 
    <ExceptionType>System.ArgumentException, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</ExceptionType> 
    <Message>Invalid postback or callback argument. Event validation is enabled using &lt;pages enableEventValidation="true"/&gt; in configuration or &lt;%@ Page EnableEventValidation="true" %&gt; in a page. For security purposes, this feature verifies that arguments to postback or callback events originate from the server control that originally rendered them. If the data is valid and expected, use the ClientScriptManager.RegisterForEventValidation method in order to register the postback or callback data for validation.</Message> 
    <Source>System.Web</Source> 
    <HelpLink /> 
    <Property name="ParamName">&lt;undefined value&gt;</Property> 
    <Property name="Data">System.Collections.ListDictionaryInternal</Property> 
    <Property name="TargetSite">Void ValidateEvent(System.String, System.String)</Property> 
    <Property name="HResult">-2147024809</Property> 
    <StackTrace> at System.Web.UI.ClientScriptManager.ValidateEvent(String uniqueId, String argument) 
    at System.Web.UI.WebControls.HiddenField.LoadPostData(String postDataKey, NameValueCollection postCollection) 
    at System.Web.UI.Page.ProcessPostData(NameValueCollection postData, Boolean fBeforeLoad) 
    at System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)</StackTrace> 
+0

Добро пожаловать! Пожалуйста, разместите все журналы стека/сообщения об ошибках из журналов, что облегчит нам помощь. –

ответ

0

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

0

Да, это вызвало у нас большую головную боль. Нижняя строка находится в веб-фермах IIS, чтобы все серверы были похожи друг на друга, исправления ОС, особенно .net framework. Для среды .net проверьте использование regedit, так как пул приложений IIS сообщил об этом неправильно. Если они не все одинаковые (включая патчи ОС), будьте готовы к таким головным болям с управлением сеансами.

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