473,396 Members | 1,785 Online
Bytes | Software Development & Data Engineering Community
Post Job

Home Posts Topics Members FAQ

Join Bytes to post your question to a community of 473,396 software developers and data experts.

Web server cluster related problem

We are running an ASP.NET application on a cluster of 3 web-servers, using
the Network Load Balancing feature of Application Center. We have
synchronized the machineKey in machine.config on the 3 web-servers, so we
can utilize a random algorithm for server selection for requests. The
application does not use either session state or application state.

We recently upgraded to .NET Framework 1.1 (including the hotfix for the
"doPostback bug"), and after that we experience a mysterious problem on our
production servers:

Let's call the servers A, B and C. Let's say you select a page (a GET
request), and it is served by either server A or B. The page contains a
form, so when you post it back and server C gets to handle the request, the
response appears to be like the original GET request. The page does not seem
to process the page as a POST request.

The same thing happens if the original page comes from server C, and the
postback is processed by server A or B.

Obviously, it seems that there is something wrong on server C.

We have checked everything we can think of. Among them the .NET Framework
installation, machine.config, and that the web application files are the
same.

Since this is a production environment, we are not allowed to use debug
tools. However, we have enabled tracing. When this problem occurs, we see
that
1) The form collection contains the posted data
2) That LoadViewState and ProcessPostData has been executed, both of which
are not executed on a GET request.
3) SessionId is unchanged

But even so, when the request is processed by the called page, it is
processed as a GET request.

Now I don't know where to keep on looking. Does it ring a bell for anyone?

Thanks,
Helge
Nov 18 '05 #1
2 3416
An ASP.NET webform detects if a request is a postback by comparing the
hash value in the viewstate of a page. This hash value is generated
by using a validation key. In the default setting, ASP.NET will
automatically generate an random validation key for each web server.
Thus, sending a POST request to a webform on a different web server
will not be recognized as a POST request because the validation key is
different.

Try changing the machine.config or web.config on each web server to
use a static validation key.

For example,

<machineKey validationKey="Some static key" validation="SHA1"/>

Tommy,

"Helge Kalnes" <he**********@electricfarm.no> wrote in message news:<ej**************@TK2MSFTNGP11.phx.gbl>...
We are running an ASP.NET application on a cluster of 3 web-servers, using
the Network Load Balancing feature of Application Center. We have
synchronized the machineKey in machine.config on the 3 web-servers, so we
can utilize a random algorithm for server selection for requests. The
application does not use either session state or application state.

We recently upgraded to .NET Framework 1.1 (including the hotfix for the
"doPostback bug"), and after that we experience a mysterious problem on our
production servers:

Let's call the servers A, B and C. Let's say you select a page (a GET
request), and it is served by either server A or B. The page contains a
form, so when you post it back and server C gets to handle the request, the
response appears to be like the original GET request. The page does not seem
to process the page as a POST request.

The same thing happens if the original page comes from server C, and the
postback is processed by server A or B.

Obviously, it seems that there is something wrong on server C.

We have checked everything we can think of. Among them the .NET Framework
installation, machine.config, and that the web application files are the
same.

Since this is a production environment, we are not allowed to use debug
tools. However, we have enabled tracing. When this problem occurs, we see
that
1) The form collection contains the posted data
2) That LoadViewState and ProcessPostData has been executed, both of which
are not executed on a GET request.
3) SessionId is unchanged

But even so, when the request is processed by the called page, it is
processed as a GET request.

Now I don't know where to keep on looking. Does it ring a bell for anyone?

Thanks,
Helge

Nov 18 '05 #2
Thanx, but as you can see in my original message we have already done that.
If the machineKeys hadn't been synchronized we would have got an exception.
And in addition when switching between servers A and B there is no problem.
We have of course double checked the machineKeys several times.

I found a KB article
(http://support.microsoft.com/default...;EN-US;323744), but the
problem described here is related ASP.NET 1.0 and is supposed to be fixed in
1.1. I am not able to reproduce a problem as described in this article, but
it is of course possible that the problem is related to this.

:) Helge

"Tommy" <We**********@Hotmail.com> wrote in message
news:a8**************************@posting.google.c om...
An ASP.NET webform detects if a request is a postback by comparing the
hash value in the viewstate of a page. This hash value is generated
by using a validation key. In the default setting, ASP.NET will
automatically generate an random validation key for each web server.
Thus, sending a POST request to a webform on a different web server
will not be recognized as a POST request because the validation key is
different.

Try changing the machine.config or web.config on each web server to
use a static validation key.

For example,

<machineKey validationKey="Some static key" validation="SHA1"/>

Tommy,

"Helge Kalnes" <he**********@electricfarm.no> wrote in message

news:<ej**************@TK2MSFTNGP11.phx.gbl>...
We are running an ASP.NET application on a cluster of 3 web-servers, using the Network Load Balancing feature of Application Center. We have
synchronized the machineKey in machine.config on the 3 web-servers, so we can utilize a random algorithm for server selection for requests. The
application does not use either session state or application state.

We recently upgraded to .NET Framework 1.1 (including the hotfix for the
"doPostback bug"), and after that we experience a mysterious problem on our production servers:

Let's call the servers A, B and C. Let's say you select a page (a GET
request), and it is served by either server A or B. The page contains a
form, so when you post it back and server C gets to handle the request, the response appears to be like the original GET request. The page does not seem to process the page as a POST request.

The same thing happens if the original page comes from server C, and the
postback is processed by server A or B.

Obviously, it seems that there is something wrong on server C.

We have checked everything we can think of. Among them the .NET Framework installation, machine.config, and that the web application files are the
same.

Since this is a production environment, we are not allowed to use debug
tools. However, we have enabled tracing. When this problem occurs, we see that
1) The form collection contains the posted data
2) That LoadViewState and ProcessPostData has been executed, both of which are not executed on a GET request.
3) SessionId is unchanged

But even so, when the request is processed by the called page, it is
processed as a GET request.

Now I don't know where to keep on looking. Does it ring a bell for anyone?
Thanks,
Helge

Nov 18 '05 #3

This thread has been closed and replies have been disabled. Please start a new discussion.

Similar topics

1
by: Mark D Powell | last post by:
I have a production failover cluster running SQL Server 2000 at SP3 that I want to upgrade to SP4. I do not have a test failover cluster to test with so I need the install on the primary server to...
0
by: abdellatif | last post by:
hi all i have installed a 2 nodes cluster (active/passive)win2003 sp1 containing an exchange2003 virtual server and sqlserver2000(sp3) virtual server. everything work well, after 1 month the...
3
by: Simon | last post by:
Hi All, I'm hoping someone will have some words of wisdom for me regarding MS Clustering on Windows 2003. I have a service that runs on a cluster. During invocation it's supposed to...
4
by: Ronald Green | last post by:
Hi, I have this theoretical problem: Say that I need a chat server that also has a database where it saves all conversations. However, I need several servers for availability and load balancing....
3
by: traceable1 | last post by:
I installed the SQL Server 2005 SP2 update 2 rollup on my 64-bit server and the performance has tanked! I installed rollup 3 on some of them, but that did not seem to help. I thought it...
0
by: itsraghz | last post by:
Hi, I did *NOT* find any forums for WebSphere Application Server here. Is there any forum? If so kindly any of the moderators please help me in moving this thread to the appropriate one. I...
1
by: Mark D Powell | last post by:
I have installed Analysis Server (AS) and Reporting Services (RS) on SQL Server 2000 before. Now I have been asked to install these on a failover Cluster we have. Previously I just ran the SQL...
3
by: Mark D Powell | last post by:
I attempted to upgrade my SQL Server 2000 Enterprise Edition (32 bit) to SQL Severer 2005 EE 32 bit and while the prereqs passed the installer will not let me select the version 8.00.x (2000 SP4)...
1
by: snomad | last post by:
Hi all, I had a node failure and rebuild on a sql server 2005 2 node cluster. the server has been rebuilt with new os. i evicted then re-added the rebuilt node via cluster administrator. i...
0
by: Charles Arthur | last post by:
How do i turn on java script on a villaon, callus and itel keypad mobile phone
0
by: ryjfgjl | last post by:
In our work, we often receive Excel tables with data in the same format. If we want to analyze these data, it can be difficult to analyze them because the data is spread across multiple Excel files...
0
BarryA
by: BarryA | last post by:
What are the essential steps and strategies outlined in the Data Structures and Algorithms (DSA) roadmap for aspiring data scientists? How can individuals effectively utilize this roadmap to progress...
1
by: nemocccc | last post by:
hello, everyone, I want to develop a software for my android phone for daily needs, any suggestions?
1
by: Sonnysonu | last post by:
This is the data of csv file 1 2 3 1 2 3 1 2 3 1 2 3 2 3 2 3 3 the lengths should be different i have to store the data by column-wise with in the specific length. suppose the i have to...
0
by: Hystou | last post by:
There are some requirements for setting up RAID: 1. The motherboard and BIOS support RAID configuration. 2. The motherboard has 2 or more available SATA protocol SSD/HDD slots (including MSATA, M.2...
0
marktang
by: marktang | last post by:
ONU (Optical Network Unit) is one of the key components for providing high-speed Internet services. Its primary function is to act as an endpoint device located at the user's premises. However,...
0
Oralloy
by: Oralloy | last post by:
Hello folks, I am unable to find appropriate documentation on the type promotion of bit-fields when using the generalised comparison operator "<=>". The problem is that using the GNU compilers,...
0
jinu1996
by: jinu1996 | last post by:
In today's digital age, having a compelling online presence is paramount for businesses aiming to thrive in a competitive landscape. At the heart of this digital strategy lies an intricately woven...

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.