What is Needed to Get an ASP.NET Page to Work?

A

Altemir

SOME BACKGROUND:

I am new to ASP.NET, but somehow managed to install a perfectly working
..aspx page on our production server that I compiled in Visual Studio.
However, I recently needed to update it, so I first added a ".old"
suffix to the MyPage.aspx, MyProject.dll, and global.asax files on the
production server so I had a backup copy of the original files in case
something went wrong. Indeed, something did go wrong when I installed
the files on the production server, so I deleted the ".old" suffixes to
return the application to its original state ... AND NOW IT DOESN"T
WORK?!!?!?!

I get Parser Error messages like "Could not load type
'MyProject.MyPage' " and "Could not load type 'MyProject.Global' " I
do not have this problem on my localhost, EXCEPT when I try to copy the
application into a different test directory on my localhost. Which
leads me to ...

MY QUESTION:

What exactly is needed on a host to make an .aspx page work? I was
under the impression that all you need are fully compiled (built)
..aspx, .dll, and .asax files. I thought you could just copy these
anywhere and they would work together (provided that they're in the
right folders).

What am I misunderstanding?
 
S

Sean Chambers

There is other dll's that need to be included in addition to
MyProject.dll, basically everything in the bin folder after compiling,
minus the .pdb files, these are for debugging purposes.

Besides the entire bin folder, and any aspx pages, it should work fine.
The key is the entire bin folder though. Or at least this is what I
have found.

Also, everytime you compile an asp.net 2.0 website, a number of dll
files are generated that are pre-compiled aspx pages, EVERYTIME you
compile, these change. This is why you have to replace the entire bin
folder.

If you don't want it to pre-compile each aspx, you can get the "Web
Deployment Projects" from msdn that gives you additional deployment
options such as compiling all pages into a single DLL, I use that now
as it is much easier than managing all the seperate dll files.
 
G

Gaurav Vaish \(www.EdujiniOnline.com\)

ASP.Net 1.1?

Check... Global.asax.cs exists and is referred to in the project.
 
S

Sean Chambers

Sorry, I forgot to ask if you were using asp.net 1.1 or asp.net 2.0

My response applies to asp.net 2.0
 
J

Jon Paal

your assumption is correct, you can move the files to a server and they should run.

".old" has special meaning in visual studio, check that the files were not altered by VS, which it sometimes will do...
 
M

Mark E. Hansen

There is other dll's that need to be included in addition to
MyProject.dll, basically everything in the bin folder after compiling,
minus the .pdb files, these are for debugging purposes.

Besides the entire bin folder, and any aspx pages, it should work fine.
The key is the entire bin folder though. Or at least this is what I
have found.

Also, everytime you compile an asp.net 2.0 website, a number of dll
files are generated that are pre-compiled aspx pages, EVERYTIME you
compile, these change. This is why you have to replace the entire bin
folder.

If you don't want it to pre-compile each aspx, you can get the "Web
Deployment Projects" from msdn that gives you additional deployment
options such as compiling all pages into a single DLL, I use that now
as it is much easier than managing all the seperate dll files.

Sean,

I don't know if this will help your situation, but there is a setting
in the project properties that governs how the generated component DLL
files are named. I've selected "Use fixed naming and single page assemblies"
and no longer get the random DLL file names. They are named based on the
page name.

FYI.
 
S

Sean Chambers

Oh, I wasn't aware that there was an option in vs to do this.

Now I use web deployment projects which give me more control over
dev/production config section replacements, which was a large issues as
I developed one app on a pc,laptop and remote machine.

thanks!
 
A

Altemir

I finally got it to work but I'm not sure exactly what fixed it! But
I'm pretty sure it had to do with the MyProject.dll not being in the
right place.

Previously (i.e., before the update), the .dll was in the wwwroot/bin
folder. There were no .dlls in the wwwroot/MyProject folder and there
was no wwwroot/MyProject/bin folder at all. Yet it worked!!

I went to update the .aspx and .dll files and it stopped working. I
was eventually able to fix it simply by copying the bin folder into
wwwroot/MyProject. But I also noticed that the bin folder contains, in
addition to MyProject.dll, a subfolder named "_vti_cnf", that itself
contains an ADDITIONAL copy of MyProject.dll.

So at this point, I'm not sure which actually fixed the problem:
wwwroot/MyProject/bin/MyProject.dll or
wwwroot/MyProject/bin/_vti_cnf/MyProject.dll. I also don't understand
why it worked before without any .dlls in the MyProject folder. Which
leads me to ask:

1) How does the .aspx file know where its .dll is located?

2) What is the role of the _vti_cnf folder and its contents?

Thank for all your help!

P.S. I am using ASP.NET 2.0
 

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