Forcing ASP.NET 1.1 isn't working

S

slolife

I have an W2k3IIS server with .NET 1.1 and 2.0 installed. I have a
website, which I'd like to run as 1.1. So I go to that website/app's
properties, and on the ASP.NET tab, I select 1.1.

I have a test page that triggers an event validation (which is a
feature introduced in 2.0). I hit that test page and the error is
generated. So apparently, the site (or, what it really looks like, is
just the page) is still running in 2.0. So I add the following
startup tag to the web.config in the <configuration> tag:

<configuration>
<startup>
<requiredRuntime version="v1.1.4322"/>
<supportedRuntime version="v1.1.4322"/>
</startup>
....
</configuration>

The page still causes the event validation error (meaning, still
running as .NET 2.0).

So what am I doing wrong here? What do I need to do to get the site/
page to run as 1.1?

NOTE: One of the ways I know the page is running 2.0 is that I can add
the attribute enableEventValidation into the @Page directive and the
page compiler doesn't choke.
 
N

Norman Yuan

..NET is backward compatible, not forward compatible. So, code written and
compiled on 2.0 will not run on 1.x, just as you see.


slolife said:
I have an W2k3IIS server with .NET 1.1 and 2.0 installed. I have a
website, which I'd like to run as 1.1. So I go to that website/app's
properties, and on the ASP.NET tab, I select 1.1.

I have a test page that triggers an event validation (which is a
feature introduced in 2.0). I hit that test page and the error is
generated. So apparently, the site (or, what it really looks like, is
just the page) is still running in 2.0. So I add the following


The site DOES NOT run in 2.0. It runs in 1.1, so your code developed on 2.0
causes error: 1.1 runtime does not know 2.0 code.
You can do the opposite: developing app with 1.x, and run in with either 1,x
or 2.0 runtime.
 
S

slolife

Let me narrow it down, because I realize my initial description was
long winded:

The asp.net dll is compiled in 1.0, the whole website is marked to run
as 1.1. Nothing is supposed to be 2.0. IIS and the
aspnet_regiis.exe -lk say that all sites and apps are running 1.1.
Web.config, like I explained, tries to force 1.1.

Despite all of that, I have a page with this code in the HTML:

..NET Version=<%=System.Environment.Version.ToString()%>

The page spits out:
..NET Version=2.0.50727.832

Why is it running 2.0?
 
J

Juan T. Llibre

re:
!> Web.config, like I explained, tries to force 1.1
!> <requiredRuntime version="v1.1.4322"/>
!> <supportedRuntime version="v1.1.4322"/>

That doesn't work for web apps. It only works for Windows Forms.

Have you tried setting the .Net Framework version with aspnet_regiis ?

i.e., open a command window at :
drive:\Windows\Microsoft.NET\Framework\v1.1.4322

....and issue this command :

aspnet_regiis.exe -s W3SVC/1/ROOT/YourVirtualAppName

Substitute your application's name for YourVirtualAppName.

You could also, temporarily, disable ASP.NET 2.0 if you're not using it.

To do that, open a command window at :
drive:\Windows\Microsoft.NET\Framework\v2.0.50727

....and issue this command

aspnet_regiis.exe -u

That will completely uninstall the .Net Framework 2.0 ( without removing the files ).

Once you confirm that your site is working with ASP.NET 1.1,
when you're ready to reinstall the .Net Framework 2.0, run :

aspnet_regiis.exe -ir

....from the same directory :
drive:\Windows\Microsoft.NET\Framework\v2.0.50727

That will re-enable ASP.NET 2.0 without requiring reinstalling the files
( and without reconfiguring any existing apps to run under ASP.NET 2.0 ).

Later, you can choose to configure individual apps to run with ASP.NET 2.0 in the IIS Manager.

Try either method or both...and post back the results.



Juan T. Llibre, asp.net MVP
asp.net faq : http://asp.net.do/faq/
foros de asp.net, en español : http://asp.net.do/foros/
======================================
 
S

slolife

A lot of good info here. Thanks Juan!

Unfortunately, it did not work. First of all, uninstalling .NET 2.0
from IIS didn't work. I ran this:
C:\Windows\Microsoft.NET\Framework\v2.0.50727\aspnet_regiis.exe -u

It said it uninstalled. So I fired up the website and I get an error
that "Network Service does not have write permissions to C:\Windows
\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files". This
continued to happen even after recycling the iis and web services.

Okay, so if .NET 2.0 has been uninstalled from IIS, why does accessing
the website require access to the 2.0 framework directory. Even the
snippet of code on the test page:

..NET Version=<%=System.Environment.Version.ToString()%>

Spits out:
..NET Version=2.0.50727.832

What is going on?

One of the differences we noticed between a server that is working (an
not exhibiting these problems) and one that does have problems, is
that the following patch:

http://support.microsoft.com/kb/928365

Is installed on problem servers. Once we uninstall the patch from a
problem server, the problem goes away.

Now I am stumped. The patch seems faulty based on that situation.

Anyone else seen this sort of problem with that patch? Anyone else
have any ideas on how to get the website to stick to 1.1 with the
patch?
 
J

Juan T. Llibre

Thanks for the detailed report and sleuthing, slolife.
I am escalating this internally and will post back when/if I have an answer.




Juan T. Llibre, asp.net MVP
asp.net faq : http://asp.net.do/faq/
foros de asp.net, en español : http://asp.net.do/foros/
======================================
A lot of good info here. Thanks Juan!

Unfortunately, it did not work. First of all, uninstalling .NET 2.0
from IIS didn't work. I ran this:
C:\Windows\Microsoft.NET\Framework\v2.0.50727\aspnet_regiis.exe -u

It said it uninstalled. So I fired up the website and I get an error
that "Network Service does not have write permissions to C:\Windows
\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files". This
continued to happen even after recycling the iis and web services.

Okay, so if .NET 2.0 has been uninstalled from IIS, why does accessing
the website require access to the 2.0 framework directory. Even the
snippet of code on the test page:

..NET Version=<%=System.Environment.Version.ToString()%>

Spits out:
..NET Version=2.0.50727.832

What is going on?

One of the differences we noticed between a server that is working (an
not exhibiting these problems) and one that does have problems, is
that the following patch:

http://support.microsoft.com/kb/928365

Is installed on problem servers. Once we uninstall the patch from a
problem server, the problem goes away.

Now I am stumped. The patch seems faulty based on that situation.

Anyone else seen this sort of problem with that patch? Anyone else
have any ideas on how to get the website to stick to 1.1 with the
patch?
 
S

slolife

Excellent! Thanks Juan.


Thanks for the detailed report and sleuthing, slolife.
I am escalating this internally and will post back when/if I have an answer.

Juan T. Llibre, asp.net MVP
asp.net faq :http://asp.net.do/faq/
foros de asp.net, en español :http://asp.net.do/foros/

A lot of good info here. Thanks Juan!

Unfortunately, it did not work. First of all, uninstalling .NET 2.0
from IIS didn't work. I ran this:
C:\Windows\Microsoft.NET\Framework\v2.0.50727\aspnet_regiis.exe -u

It said it uninstalled. So I fired up the website and I get an error
that "Network Service does not have write permissions to C:\Windows
\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files". This
continued to happen even after recycling the iis and web services.

Okay, so if .NET 2.0 has been uninstalled from IIS, why does accessing
the website require access to the 2.0 framework directory. Even the
snippet of code on the test page:

.NET Version=<%=System.Environment.Version.ToString()%>

Spits out:
.NET Version=2.0.50727.832

What is going on?

One of the differences we noticed between a server that is working (an
not exhibiting these problems) and one that does have problems, is
that the following patch:

http://support.microsoft.com/kb/928365

Is installed on problem servers. Once we uninstall the patch from a
problem server, the problem goes away.

Now I am stumped. The patch seems faulty based on that situation.

Anyone else seen this sort of problem with that patch? Anyone else
have any ideas on how to get the website to stick to 1.1 with the
patch?
 
S

slolife

I ended up calling Microsoft about this as we (ExactBid.com) are going
live with a product in a few days and needed a resolution. Here's the
summary in case anyone else runs into the problem:

Problem
=======
After installing the patch KB928365, 1.1 applications are running in
2.0 framework causing issues in the application

Environment
=========
Windows 2003 - asp.net 1.1 and 2.0

Cause
====
Since the home page (default) was asp (unmanaged code), it loaded 2.0
instead of 1.1

Resolution
========
Raise a get request to an aspx page first during application start
event so that 1.1 is loaded in the process

Code used
=======
<script language="vbscript" runat="server">
Sub Application_OnStart
Dim winhttp
Set winhttp = Server.Createobject("winHTTP.WinHttpRequest.5.1")
winhttp.Open "GET","<http://www.mysite.com/MyApp/dummy.aspx>",
false
winhttp.send()
Set winhttp = nothing
End Sub
</script>

=========

Hope that's helps people. Thanks for you help!
 
A

Alvin Bruney [MVP]

I like that initial request thing, really creative. FYI: the windows forms
app.config fix has serious limitations as well and is not guarnateed to
work. There's more here:
http://support.microsoft.com/default.aspx?scid=kb;en-us;556035

--
Regards,
Alvin Bruney
------------------------------------------------------
Shameless Author Plug
OWC Black Book 2nd Edition
Exclusively on www.lulu.com/owc
$24.99


I ended up calling Microsoft about this as we (ExactBid.com) are going
live with a product in a few days and needed a resolution. Here's the
summary in case anyone else runs into the problem:

Problem
=======
After installing the patch KB928365, 1.1 applications are running in
2.0 framework causing issues in the application

Environment
=========
Windows 2003 - asp.net 1.1 and 2.0

Cause
====
Since the home page (default) was asp (unmanaged code), it loaded 2.0
instead of 1.1

Resolution
========
Raise a get request to an aspx page first during application start
event so that 1.1 is loaded in the process

Code used
=======
<script language="vbscript" runat="server">
Sub Application_OnStart
Dim winhttp
Set winhttp = Server.Createobject("winHTTP.WinHttpRequest.5.1")
winhttp.Open "GET","<http://www.mysite.com/MyApp/dummy.aspx>",
false
winhttp.send()
Set winhttp = nothing
End Sub
</script>

=========

Hope that's helps people. Thanks for you help!
 
J

Juan T. Llibre

re:
!> Since the home page (default) was asp (unmanaged code)

I wish you'd mentioned that before.
I could have saved you the support incident.




Juan T. Llibre, asp.net MVP
asp.net faq : http://asp.net.do/faq/
foros de asp.net, en español : http://asp.net.do/foros/
======================================
I ended up calling Microsoft about this as we (ExactBid.com) are going
live with a product in a few days and needed a resolution. Here's the
summary in case anyone else runs into the problem:

Problem
=======
After installing the patch KB928365, 1.1 applications are running in
2.0 framework causing issues in the application

Environment
=========
Windows 2003 - asp.net 1.1 and 2.0

Cause
====
Since the home page (default) was asp (unmanaged code), it loaded 2.0
instead of 1.1

Resolution
========
Raise a get request to an aspx page first during application start
event so that 1.1 is loaded in the process

Code used
=======
<script language="vbscript" runat="server">
Sub Application_OnStart
Dim winhttp
Set winhttp = Server.Createobject("winHTTP.WinHttpRequest.5.1")
winhttp.Open "GET","<http://www.mysite.com/MyApp/dummy.aspx>",
false
winhttp.send()
Set winhttp = nothing
End Sub
</script>

=========

Hope that's helps people. Thanks for you help!
 
S

slolife

Well, I didn't want to come across as pushy :) Thanks again for
taking the time to look into it.
 
P

Phil Johnson

I cannot see the message for this one (its just coming up unknown in my
browser with no content), but the problem sounds like you have included some
asp.net 1.1 pages as part of a legacy asp website, but you could be getting
an error saying that IIS is loading a different version of the framework?

If this is the case, it sounds like you might have something like an ActiveX
control that is written in a newer version of .net on the legacy asp pages.

If IIS runs the activex control first, the com interop will load the newest
version of .net framework on the machine, regardless of which version of .net
either the ActiveX control or your asp.net pages are written in.

I believe an ISAPI filter is the only way around this.

--
Regards,

Phillip Johnson (MCSD For .NET)
PJ Software Development
www.pjsoftwaredevelopment.com
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top