Error executing version of Net Framework

G

Guest

Hello,

Please anybody help me.
I have only a little experience with web development.
I created simple project using ASP NET 2.0 (VS 2005)
It works fine on local computer.

When I tried to run the application on the web, it give me an error about
net framework version information.


"Version Information: Microsoft .NET Framework Version:1.1.4322.2300;
ASP.NET Version:1.1.4322.2300"


I think the problem is because running ASP NET 2.0 application but the
application was executed using 1.1.

Our Web Provider has two NET Frameworks to choose: NET Framework 1.1 and 2.0.

How could I set up the application to run on NET Framework 2.0 ??

Thank you.
 
P

Peter Bradley

If you developed using .NET Framework, 2.0, you must deploy it to a machine
that is also running .NET 2.0.

I think your first step is to ask your provider if the .NET Framework
version 2.0 is available on the server hosting your site.


Peter
 
G

Gary

Hermawih said:
Hello,

Please anybody help me.
I have only a little experience with web development.
I created simple project using ASP NET 2.0 (VS 2005)
It works fine on local computer.

When I tried to run the application on the web, it give me an error about
net framework version information.


"Version Information: Microsoft .NET Framework Version:1.1.4322.2300;
ASP.NET Version:1.1.4322.2300"


I think the problem is because running ASP NET 2.0 application but the
application was executed using 1.1.

Our Web Provider has two NET Frameworks to choose: NET Framework 1.1 and
2.0.

How could I set up the application to run on NET Framework 2.0 ??

Thank you.


I am also new. I think within IIS, if you right click on your SITE which
you have setup and choose PROPERTIES, you will find a ASP.NET tab which has
the options. if you dont see the ASP.NET tab, you havent installed .NET 2.0
framework.

Thats how I get it to work.

G.
 
G

Guest

Peter Wrote,
If you developed using .NET Framework, 2.0, you must deploy it to a machine
that is also running .NET 2.0.

I think your first step is to ask your provider if the .NET Framework
version 2.0 is available on the server hosting your site.

Thanks Peter for replying. Our provider has two NET Framework 1.1 and 2.0.
But perhaps because of the default setting set by provider, the application
was run on 1.1.

It got to be a way to change that default setting programmatically. I have
a feeling that it got to be on web.config. But I just don't know how.

--
Hermawih



Peter Bradley said:
If you developed using .NET Framework, 2.0, you must deploy it to a machine
that is also running .NET 2.0.

I think your first step is to ask your provider if the .NET Framework
version 2.0 is available on the server hosting your site.


Peter
 
G

Guest

Gary Wrote,

I think within IIS, if you right click on your SITE which
you have setup and choose PROPERTIES, you will find a ASP.NET tab which has
the options. if you dont see the ASP.NET tab, you havent installed .NET 2.0
framework.

---
Thanks Gary for replying. Our provider has two NET Framework 1.1 and 2.0.
I can't touch the IIS because the only person who can setup IIS on our web
site is the admin of our provider. Perhaps I could ask our provider to set
the NET framework 2.0 as the default setting. But I want to find a way
programmatically.
It got to be a way to change that default setting programmatically. I have
a feeling that it got to be on web.config. But I just don't know how to set
it up.
 
P

Peter Bradley

Don't think so. I may very well be wrong, but I think you will have to ask
your ISP to configure your site to use .NET Framework 2.0.


Peter

Hermawih said:
Peter Wrote,
If you developed using .NET Framework, 2.0, you must deploy it to a
machine
that is also running .NET 2.0.

I think your first step is to ask your provider if the .NET Framework
version 2.0 is available on the server hosting your site.

Thanks Peter for replying. Our provider has two NET Framework 1.1 and
2.0.
But perhaps because of the default setting set by provider, the
application
was run on 1.1.

It got to be a way to change that default setting programmatically. I
have
a feeling that it got to be on web.config. But I just don't know how.
 
M

Mark Fitzpatrick

It is not in the web.config and must be set through IIS or through a
command-line tool. In short, you need to ensure that your host has your site
set for 2.0 as you cannot change this, only they can do this. It's a fairly
easy change and most hosts are pretty quick about it.


--

Hope this helps,
Mark Fitzpatrick
Former Microsoft FrontPage MVP 199?-2006


Hermawih said:
Peter Wrote,
If you developed using .NET Framework, 2.0, you must deploy it to a
machine
that is also running .NET 2.0.

I think your first step is to ask your provider if the .NET Framework
version 2.0 is available on the server hosting your site.

Thanks Peter for replying. Our provider has two NET Framework 1.1 and
2.0.
But perhaps because of the default setting set by provider, the
application
was run on 1.1.

It got to be a way to change that default setting programmatically. I
have
a feeling that it got to be on web.config. But I just don't know how.
 
G

Guest

Hello Mark,

I searched that issue on MSDN "Side by Side Execution". It gave me so much
information on that. MSDN suggests that I use SupportedRuntime element on
web.config.

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

But It did not work. Perhaps I did it wrong or maybe that can't be done
using web.config.

I am going to follow Mark's suggestion for easy way out by asking our
provider to change the default setting into version 2.0.

Thanks all for sharing.
 
G

Guest

Thanks you all for sharing.

I just asked our provider to change the setting. In only a few minutes the
problems gone.
 
G

Gary

I just asked our provider to change the setting. In only a few minutes
the
problems gone.


Who do you use for hosting? I use oneandone (useless) and Rackspace
(Fanatical!!!). One and One are slowly but surely being dumped over time.

G.
 
G

Guest

Hello Juan

Thanks for information. That explains why it didn't work for ASP NET pages.
I think I can't find any information on the article about it. Well perhaps
it is there. I read only some portion of the articles.
 
S

Steven Cheng[MSFT]

Hello Hermawih,

For ASP.NET web application, the runtime version configuration is
controlled by the IIS applicatoin virtual directory's service extension
mapping. Since you're using a public web hoster, I suggest contact the web
hoster to adjust the ASP.NET version of your application's virtual
directory. Based on the error message you mentioned in the first reply,
the virtual directory's extension mapping is not correctly configured as
ASP.NET 2.0.

BTW, the following configuratino schema is for non-ASP.NET application(such
as console, winform....).

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

Sincerely,

Steven Cheng

Microsoft MSDN Online Support Lead


This posting is provided "AS IS" with no warranties, and confers no rights.
 
G

Guest

Hello Steven,
Thanks for the information and confimation about the " supportedRuntime
version" element. Our experiment with that simple project is doing okay.
Thanks for that revolutionized way of creating web application. ASP Net
really makes desktop developer like us an easy initial step of learning it.
We are overwhelmed with our first web project. Well It is still in simple
state but with that small success gave us so much encouragement for further
learning. Actually, some people have used it. Thanks for the email
notification you sent.

Hermawih
 
G

Guest

Steven Cheng Wrote,

If there is anything else we can help, please feel free to followup in the
newsgroup.

---

Hi Steven.

Actually there is something that confused us.
we are trying to improve the performance of the application.

For simplicity sake, let me create some simple illustration(fictious sample)

- 1 table ( ID,Customer Name, Country,Description)
- 1 dropdownlist for filtering. ( showing all the country in the world)
- 1 list box for showing the list of available data. (value = ID , Text =
Customer Name)
- 1 text box for showing data ( show the description of the Customer)

A. When someone select a value from dropdownlist, ie Japan, the application
will select records with that criteria and populate the listbox with the data
( ID and Customer Name - from Japan)
B. when someone select a value from the list box, the application will show
the description of the customer.


First Attempt:
At our first web form, form1, when someone clicked on the listbox,
application will get it from the database server based on the ID and show the
description on the text box. We are using datareader to get the data. So
the application will always try to connect to the server to get the data.

Actually there is nothing wrong with the application until someone comments
about the slow response from the server.

Second Attempt:
Based on that complaint, I create another approach.

A I create data adapter and dataset.
B. After someone select a value from the dpl ( dropdownlist),ie Japan,
application will populate the listbox with customers from Japan and
fill the dataset with all the customer from Japan.
C. When someone click the list box, instead of connecting to the server, now
the application
try to get the customer description from the dataset.

' gDs = global dataset

Dim dt As DataTable = gDs.Tables("tblCustFilter")

For Each row As DataRow In dt.Rows
For Each col As DataColumn In dt.Columns
' Show the selected description user chosen from listbox
If row("ID") = Me.lstCustList.SelectedItem.Value Then
Me.txtDescription.Text = row("Description")
End If
Next
Next

At this attempt, I think I have created disconnected recordset.
The idea is not to connect to server all the time and use that XML
representation of the table

This approach is also run without any trouble.
I don't see any increase performance on this second approach.
Then I come up with the idea by setting the property of the listbox of
AutoPostback = false
It did not give the value I expected. I come up with the third approach.

Third Attempt:
A. I set the listbox property of AutoPostback = false
B. I add a button
then when some one click the button, the application will get the data
from dataset.

Dim dt As DataTable = gDs.Tables("tblCustFilter")
dim flgfound as boolean
flgFound = false

For Each row As DataRow In dt.Rows
For Each col As DataColumn In dt.Columns
' Show the selected description user chosen from listbox
If row("ID") = Me.lstCustList.SelectedItem.Value Then
Me.txtDescription.Text = row("Description")
flgFound = true
End If

Next
' After the value is found then get out
if flgFound then exit for
Next

Questions?

I think that the second approach took longer than the first.
I don't see any increase performance on the third attempt even I set the
autopostback = false
and set the button property of usesubmitBehaviour= false
I think I still like the first approach because it needs only one click.

1. How do I increate the performance of the application ?
2. Why the third attempt did not show any increase performance ?


Anybody has any tips to improve performance ?

Thanks for reading this rather lengthy description.

Hermawih
 
S

Steven Cheng[MSFT]

Thanks for your followup Hermawih,

Based on your description, I think your current concern is that how to
improve the performance when a user select a certain data item in the
Listbox and need to display the description of this item, correct?

Currently, what you've tried is

** postback the page whenever a user select a item in listbox and query the
database and set the queried value to textbox

** still postback the page whenever a user select a certain item in
listbox, but instead of getting description by querying the backend
database, you read the cached DataSet(in server memory) for data,

I'm wondering how much is the size of each record's description? Is it
possible that we embed all the items(of the same country) in page's
response and make it hidden. and when a certain record is selected we use
client-side script to display it in textbox?

Also, for server-side caching, are you using the ASP.NET Cache storage? I
suggest you cache the datatable for records of each country (but set a
expire timeout). Thus, whenever your page postback to query descrption of a
record, you always try looking up the Cache(for the DataTable that mapped
to a certain country). if cache is empty, you query backedn db to fullfil
the cache. for such cache scenario, it will add memory presure of the
server machine, however, we have to make the choice whether we should
improve the response time or memory usage.

Please let me know your opinion or if you have any other questions.

Sincerely,

Steven Cheng

Microsoft MSDN Online Support Lead



This posting is provided "AS IS" with no warranties, and confers no rights.
 
G

Guest

Thanks Steven,

Steven wrote,
------------------
Currently, what you've tried is

** postback the page whenever a user select a item in listbox and query the
database and set the queried value to textbox

** still postback the page whenever a user select a certain item in
listbox, but instead of getting description by querying the backend
database, you read the cached DataSet(in server memory) for data,
-------------------------------------------------

Yes those are what I did.

I have been research on this topic about performance for web application.
Some of the suggestions are:

A. Microsoft suggest not to use "AutoeventWireup"
B. Client Scripting
C. Caching
D. ....
E. ......

A. Autoeventwireup
Microsoft suggest not to use autoeventwireup because
the code will be executed twice. One by NET and one by VS.
The problem: if I set this to false then all the code on Page_load are
not executed.

B. Client scripting.
I understand the reason.

C. Caching

Steven wrote,

Also, for server-side caching, are you using the ASP.NET Cache storage? I
suggest you cache the datatable for records of each country (but set a
expire timeout). Thus, whenever your page postback to query descrption of a
record, you always try looking up the Cache(for the DataTable that mapped
to a certain country). if cache is empty, you query backedn db to fullfil
the cache. for such cache scenario, it will add memory presure of the
server machine, however, we have to make the choice whether we should
improve the response time or memory usage.

( Thanks Steven. I just realized the mistake, I did not cache it.)
----------------

I also was given this advice somewhere.
But It is not clear to me what kind situations that I should choose one
over another.
I can't find yet a detail discussion about this. Let me make a wild guess.

I think most important things to consider are:

A1. The number of people connected to the server.
A2. How long the people will be connected to the server on average.
A3. How large the size of the data to cache. ( That is why you mentioned
about the size of description field )

If there are many people connect to the server and on average they stay long
then I should choose direct connection to the server because in this scenario
it will use much memory. But if few people connect to the server then I
should choose
caching. Can I say that?

-----

After doing some research and thought, actually the real problem is my
desktop mindset. I use this kind of technique on my desktop application.
Without too much consiration I apply this thing into our web project. I think
the approach should be listing all the data based on the user's selection and
user can choose and open a new form. The same technique applied by all the
search engine. I think I am going to use datagrid and paging for that
purpose.

I have been reading a book "Distributed Data Applications with ASP.NET". It
is an excellent book discussing about client scripting, business objects,
data tier and so on. With many examples, that book really helps me learning
ASP NET faster. Yes the idea to change the approach after reading that book.
 
S

Steven Cheng[MSFT]

Thanks for your response Hermawih,

For the "AutowireupEvent" attribute, you do not need to care it too much,
just keep the default setting. The double event handler registering will
occur only when you are developing ASP.NET page through VB.NET code(since
VB.NET will register event handler in the eventhandler's declartion code
also).

As for the following things you mentioned
=====================
also was given this advice somewhere.
But It is not clear to me what kind situations that I should choose one
over another.
I can't find yet a detail discussion about this. Let me make a wild guess.

I think most important things to consider are:

A1. The number of people connected to the server.
A2. How long the people will be connected to the server on average.
A3. How large the size of the data to cache. ( That is why you mentioned
about the size of description field )

If there are many people connect to the server and on average they stay
long
then I should choose direct connection to the server because in this
scenario
it will use much memory. But if few people connect to the server then I
should choose
caching. Can I say that?
=======================

My understanding is as below:

For ASP.NET server-side application's performance, generally, we would care
serveral things, they are response time, throughput and stability.

** response time will be affected by your page's processing time, and the
page's response content size. For example, if a page contains a long-time
data base accessing operation, the response time will be long also. Or if
the page's response content size is large(contains large viewstate or
content in page), it will also make the response time large. That's why it
is recommended that we try shrink the page size or avoid using viewstate
if possible.

**For page throughput, it also some want related to the response time.
Because all the ASP.NET requests are processed by thread-pool thread picked
up from threadpool. and for each process, it has only one .NET managed
threadpool and the max allowed nubmer of threads. So when those pooled
threads are all used(by some long-run task), other sequential requests will
be pending and affect the entire application's throughput. Here is a good
webcast introducing ASP.NET threading:

#Support WebCast: Microsoft ASP.NET Threading
http://support.microsoft.com/kb/820913/en-us

**For stability, mostly it is determined by some of the performance status
of the application. Such as memory usage, pending requests or deadlocks....
There is settings(for IIS6, it is in the application pool) indicate when
the number exceed certain limitation ASP.NET application process will be
recycled.

You can review the performance of your application based on these basic
rules together with those best practice aricles you can find in MSDN
library.

Hope this helps further.

Sincerely,

Steven Cheng

Microsoft MSDN Online Support Lead


This posting is provided "AS IS" with no warranties, and confers no rights.
 
G

Guest

Thanks Steven,

Much better explanation than any other that I have found so far. Thanks you
for that detail explanation. I downloaded the powerpoint presentation and
will play it latter for further study.

Thanks so much for your time.
 

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

Members online

No members online now.

Forum statistics

Threads
473,995
Messages
2,570,226
Members
46,815
Latest member
treekmostly22

Latest Threads

Top