Service Pack 1 for .NET v1.1 Broke My ASP.NET App

Yes, its true -- Service Pack 1 for .NET v1.1 really did break my ASP.NET application!  And the weirdest part was that it only broke it for IE users -- it still worked just fine with Mozilla!  Here's the story:

I should have updated my own development PC to SP1 already, but I had delayed it.  Why?  First, I didn't see anything that affected me in the fixes it contained, security or otherwise.  Also, I was updating a WinForms application and didn't want to inadvertently require them to have to download and install a massive SP just to use my latest update.  Yes, that probably wasn't a real issue but you never know with some of these updates, so I wanted to take my time instead.  So today I made a couple of very small changes to an ASP.NET v1.1 web application.  It worked great on my own PC, so I uploaded it to the server and deployed it without giving it much thought.  Next, I of course tried to test the updated application -- and I couldn't get the login button to work!  Note that it wasn't that my login failed, or didn't work in some way -- I literally mean that the login button no longer worked!  I checked my files, and I made no changes to the login page, and I looked at the rendered html for the page and it looked fine too.  On a whim I tried it with Mozilla -- and it worked!

OK, so time to think about what was different.  Well, there's not much on this page -- just a userid textbox, a password textbox, and a submit button -- oh yea, and a couple of validators.  Of course, validators aren't checked clientside by Mozilla, and if they were failing in IE then the page wouldn't even submit!  Now why would my validators have started failing all of the sudden, after all the validation scripts don't just change for no reason?  Oh yea, didn't my colleague tell me last night that he was going to install the latest critical updates, and maybe that included SP 1 for .NET v1.1?  So I checked the Microsoft.NET directory and although there wasn't a new build folder, it did appear that the file dates for the validation files were indeed very recent (actually July 2004).  So I copied these files to my domain's aspnet_client folder and everything instantly worked.  Now the weird part is that my web app was working this morning, after the SP update, but before my update, so I can only assume that the SP update actually updated my domain's aspnet_client folder, and then I recopied the old ones over it.  OK, so maybe I broke it technically, if that's really what happened -- but its still the Service Pack that was the cause.

Now my question, which has been asked by others here already, is why didn't they call this .NET v1.1.1 or something else?  This would have not only hopefully have avoided my problem, but it also would allow you to run the new SP version side-by-side with the original version -- and that would have alleviated all my original concerns in the first place.  And note that when you install this Service Pack it also tells you something about not being able to go back, so its quite legimate to worry in my opinion!  I think Microsoft has done us all a big disfavor by slipping in updates like this into Service Packs and causing us to lose that side-by-side advantage of .NET!  By the way, the end of this story is that I tried to install SP1 onto my development computer and it repeatedly failed.  I searched and found others with similar experiences, and tried several of their suggestions without success.  I finally found one that suggested uninstalling the entire .NET v1.1 framework first and then reinstalling it -- that worked and I was able to install SP1.

17 Comments

  • Paul,



    The file that caused the problem was WebUIValidation.js. I had the same issue. We updated 4 servers running Win2k3 and everything worked fine on 3 of them. Unfortuneatly, the one that failed was the live web server.



    In our case, using the new files worked, once they were copied to the correct location.

  • Yup - it's a silly bug with framework 1.1 SP1. The WebUIValidation.js files are mixed up. I think you can just use iisreg to fix it..

  • we had the same problem. to make matters worse, our 2003 servers have the permissions locked down such that we can't run the iisreg utils to update the client scripts. I am a domain admin too - figure that one out.



    so we had to do it by hand...well...write an batch file to copy the folder out to our 60 client sites. we can't figure out why the aspnet_regiis.exe -c option needs special permissions to run, but we don't have time to figure it out.

  • Paul,



    I too had my share of SP1 problems yesterday. After installing it on my development machine I kept getting and error say ing 1o_v3quy.dll could not be found.



    After re-booting and re-installing I still had the same problem. Eventually I decided to re-run aspnet_regiis.exe to re-register .net with IIS. Everything back to normal.



    Now of course I needed to run it on server too :(.... This on worked first time without any problems ..?



    I hope microsoft are not going back to old way of doing services packs. Service Pack 6 on NT 4 ring any bells :).



    Regards



    Jonathan

  • Your blog was featured on TheServerSide.NET. If you have any more information, we'd appreciate any comments you care to post.



    Paul Ballard, Editor

    TheServerSide.NET

  • The C# compiler in SP1 strengthened its ability to detect the use of unassigned variables. Our app generates C# code from resources that the compiler now rejects -- even though we never ran into compiler or runtime errors before. We'll fix our code generator and send out patches.



    I tried to argue on channel9.msdn.com that this ought to be considered a breaking change since our application used to work, but I didn't really get any agreement.

  • I had this problem too. Once I copied the Post-SP 1.1 WebUIValidation.js file from \Microsoft.NET\Framework\v1.1.4322\ASP.NETClientFiles on the web server to the aspnet_client in my web app directory everything was ok again.



    I tried the aspnet_regiis.exe -i solution, which didn't work, I think that maybe this is because my app is in a virtual directory. Manually copying the file sorted it out though.



    Thanks for posting this solution btw, I would have been tearing my hair out for days trying to figure this one out....

  • Of course, .NET was supposed to put an end to "DLL Hell", so I guess we need a new name for this sort of problem.

    How about ".NET Nightmare"?

  • I installed SP for 1.1 .NET on two my home machines and everything works fine on one machine, another one started complaining that the Web App doesn't know some settings for mobile devices in Web.Config, and finally when I started the VS2003 to find out the reason on this machine I found that the web app runs under .NET 1.0 instead of 1.1. I reregistered 1.1 and it started working as correctly.



    What was a huge surprise for me - when I uploaded my Web App to our production server it refused to show one page with button, just returns a blank page and then dies with the message in the IE status line: "Done".



    Cool guys from M$! It was a problem to find out a real reason, I spent my last night fighting with IIS, thanks to one man from a newsgroup pointing me to this URL with explanaition what's really going on with this SP.



    Regards, D.

  • Well, I had the same problem when installed NET v1.1 SP1. Submit button stopped to work on pages which has validation controls.

    I've debugged validation JS script and found that ValidatorCommonOnSubmit() function does not return boolean value in WebUIValidation.js file.

    Added return value to this functions and submit button started to work.

    Modified function code:

    function ValidatorCommonOnSubmit() {

    event.returnValue = !Page_BlockSubmit;

    Page_BlockSubmit = false;

    return event.returnValue; //MK: return value

    }

  • thanks for these info; we too had same problem. We copied newer version of sp 1 WebUIValidation.js to old directory of web server aspnet_client, it worked!



    Once again thanks for this threads.



    keep it up.

    -Giby

  • Guys, can all of you say if you're using smartNavigation (false of true) on your pages? Just check if this "magic" word is included into aspx pages? Try to delete this word and see how it works after that. I finally found that I used this option and got a lot of problems after this change. Not at once, only after upgrade with this 1.1 .NET service pack.



    I found that both versions of my application compiled by fixed and non-fixed VS incompatible. After deletion of this option everything started working fine. Surprise!



    And finally OPera ignores this problem and works good regardless of the fixed/non-fixed version.

  • I do NOT use smart navigation. The "errors" that I received were due to minor changes in the client validation files -- and due to them not being synced up on all websites. In other words, SP1 requires the new files, and if by chance your website doesn't get them in the SP1 install then your pages with validation will no longer submit in IE.

  • This worked for us:

    modify the WebUIValidation.js to include the line "return true;" in the ValidatorCommonOnSubmit() funtion

  • I also had the same problem, but I wasn't using the Validation control. I was using the submit button and populating a datagrid on return. Everything was working ok until I wanted to change the styles of the grid. I changed the CssClass and suddenly the app stopped working.



    I tried the solutions above, but nothing seemed to work. That's when I noticed that after changing the DataGrid CssClass, the InitializeComponent() was missing the delegate call and was completely empty. I simply put in the

    this.ButtonSubmit.Click += new EventHandler(ButtonSubmit_Click);

    back in the code, and it worked. I still don't know how it got erased in the first place.

  • Changing the this function in webUIValidation.js worked for me.



    Before Change:

    function ValidatorCommonOnSubmit() {

    var result = !Page_BlockSubmit;

    Page_BlockSubmit = false;

    event.returnValue = result;

    return result;

    }



    After Change:

    function ValidatorCommonOnSubmit() {

    event.returnValue = !Page_BlockSubmit;

    Page_BlockSubmit = false;

    return event.returnValue;

    }



  • I went To Aspx microsoft website found latest Web validation Script in Temp File and replaced original with this , now working fine

Comments have been disabled for this content.