ameriaadmin
asked on
Validation of viewstate MAC failed
Validation of viewstate MAC failed. If this application is hosted by a Web Farm or cluster, ensure that <machineKey> configuration specifies the same validationKey and validation algorithm. AutoGenerate cannot be used in a cluster. at System.Web.UI.ViewStateExc eption.Thr owMacValid ationError (Except
hello everyone
i have seen some error in my sql server logs. hear is
####
Validation of viewstate MAC failed. If this application is hosted by a Web Farm or cluster, ensure that <machineKey> configuration specifies the same validationKey and validation algorithm. AutoGenerate cannot be used in a cluster. at System.Web.UI.ViewStateExc eption.Thr owMacValid ationError (Except
####
i have two web servers and one sql server. for load balancing i have used dns round-robin.
in iis server i have manually created machinKey and submit sam in two servers but the log still exist
please suggest what to do.
hello everyone
i have seen some error in my sql server logs. hear is
####
Validation of viewstate MAC failed. If this application is hosted by a Web Farm or cluster, ensure that <machineKey> configuration specifies the same validationKey and validation algorithm. AutoGenerate cannot be used in a cluster. at System.Web.UI.ViewStateExc
####
i have two web servers and one sql server. for load balancing i have used dns round-robin.
in iis server i have manually created machinKey and submit sam in two servers but the log still exist
please suggest what to do.
ASKER
good url, i have done it , but still have error
Have you tried the application without the DNS round robin? I would remove 1 of the servers from the round robin config and test the application. Viewstate can not be shared across servers.
Dan
Dan
ASKER
yes, from one server it works without errors.
Then I'll go back to saying that issue probably lies with the load balancing method (DNS Round Robin) you are using.
You cannot share viewstate across servers without building (programming or thirds party software) some sort functionality to do so. Since a typical HTTP request is stateless, you would need to have some mechanism in place to share session data or to persist data across servers. You could accomplish this with a third server running a session manager, known as out-of-proc session, but this adds a little to the application's latency. There is also third party software which you could install on all servers in the web farm, which stores and replicates the session info so you could use a load balancing method like least-response-time or DNS Round Robin.
The other option would be to store this data in a database but you would still need to build functionality to persist that data with the next inbound request. Essentially you would be building a SQL backed persistent cache.
Again, I recommend using a load balancing method where the initial request and all subsequent requests for a session are sent to the server that responds to the first request. This is typically referred to as "Sticky Sessions." DNS Round Robin is not effective in your defined situation.
Dan
You cannot share viewstate across servers without building (programming or thirds party software) some sort functionality to do so. Since a typical HTTP request is stateless, you would need to have some mechanism in place to share session data or to persist data across servers. You could accomplish this with a third server running a session manager, known as out-of-proc session, but this adds a little to the application's latency. There is also third party software which you could install on all servers in the web farm, which stores and replicates the session info so you could use a load balancing method like least-response-time or DNS Round Robin.
The other option would be to store this data in a database but you would still need to build functionality to persist that data with the next inbound request. Essentially you would be building a SQL backed persistent cache.
Again, I recommend using a load balancing method where the initial request and all subsequent requests for a session are sent to the server that responds to the first request. This is typically referred to as "Sticky Sessions." DNS Round Robin is not effective in your defined situation.
Dan
ASKER CERTIFIED SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
ASKER
thank you the article was very helpful.
ASKER
we disable View State Caching
Link: https://support.microsoft.com/kb/2915218?wa=wsignin1.0
One of the take aways from the article is to use some sort of sticky session, meaning that a user session stays with the first server to respond to the initial http/https request. DNS Round Robin could be causing your viewstate issues.
Dan