The directory /App_Code is not allowed because the application is precompiled

S

Steve Franks

I'm using VS.NET 2005 Beta 2. I have a helper C# class I wrote that I placed
in my /App_Code directory. Everything runs fine locally. However when I
use the "Copy Web" function to upload the site to the production server, I
get the following error when trying to run the page on production:
"System.Web.HttpException: The directory '/App_Code' is not allowed
because the application is precompiled."

Anyone know this works fine locally but not on development? How can I
resolve this?

Also on a related note I read a lot about a new "\code" directory in ASP.NET
2.0. Am I correct to assume that at some point they changed this from \code
to \App_Code and these are the same thing?

Steve
 
J

Juan T. Llibre

Hi, Steve.

re:
Am I correct to assume that at some point they changed this from \code to \App_Code and
these are the same thing?

You're correct. In Beta 1 it was called /code.
In Beta 2, it was changed to /App_Code.

See http://msdn.microsoft.com/asp.net/whidbey/beta2update.aspx
for a complete list of special directories.

re:
"System.Web.HttpException: The directory '/App_Code' is not allowed because the
application is precompiled."

Anyone know this works fine locally but not on development? How can I resolve this?

You don't need to resolve it.

Because you're precompiling, everything that would go in the App_Code
directory is already compiled and doesn't need to be uploaded.

If you want to upload your source files into the
App_Code directory, don't precompile your application.




Juan T. Llibre
ASP.NET MVP
ASP.NET FAQ : http://asp.net.do/faq/
==========================
 
S

Steve Franks

Because you're precompiling, everything that would go in the App_Code
directory is already compiled and doesn't need to be uploaded.

If you want to upload your source files into the
App_Code directory, don't precompile your application.

I am not purposely precompiling my application. How can I prevent it from
precompiling?

Locally I just use VS.NET 2005 b2 to do the development and press F5 to run
it. Sometimes I press F6 to get a sanity check on whether I've screwed any
code up.

For production, I want the flexibility to be able to edit source on the
production server to make an update on the fly, so the precompiled approach
is not of interest.

My main goal is to just be able to easily synchronize the work I do at home
on the production server, and then get to work and easily update my local
dev copy of the web app to reflect the changes I've made at home by syncing
with the production server. Then I'll make changes at work, and when I get
home, I'll want to sync my home machine up with what's now on the production
server, and so forth. Currently I'm (trying) to use the Copy Web function
for this. Is that appropriate and/or is there a better way?

Thanks,

Steve
 
S

Steve Franks

Juan,

Any ideas about what I posted below? Looking forward to your response. Than
you so much.

Steve,
 
S

Steve Franks

Well, there seems to be some sort of a conflict or design issue here with
this restriction.

I decided I'd just delete my App_Code directory from the remote site. I
figured this would be OK since its tellin gme the application is
precompiled. Yet then when I go to run a page it complains "The name
'myclass' does not exist in the current context". So if everything was
precompiled and no app_code directory is needed then what's the problem
here?

My preference is to precompile locally as I test and run my app, and then
when I publish to the remote server I want to publish all the files. I
can't seem to work around this. Any ideas?

Steve
 
J

Juan T. Llibre

re:
My preference is to precompile locally as I test and run my app

I thought you had said you did *not* precompile.
There's a difference between "precompile" and "compile".

Which one are you doing ?

Have you tried to FTP your files instead of "publishing" them ?



Juan T. Llibre
ASP.NET MVP
ASP.NET FAQ : http://asp.net.do/faq/
==========================
 
S

Steve Franks

Sorry about the confusion. Let me explain specifically what I'm trying to
do.

Locally I'm using whatever the default settings are, as it relates to
precompiling. When I look at the property pages of my ASP.NET web
application, and click on the Build section, the revelant sections say
"Before running startup page: Build Web Site". And "Build solution action"
section has the check box checked for "Build web site as part of solution".

That is how I like to run things because I prefer to know about any mishaps
I've made coding-wise before the page runs.

Now over to production... I like the Copy Web function because it seems like
a convenient way from within VS.NET 2005 Beta 2 to easily have it sync the
production site with changes as I make them in development.

However recently I added a App_Code folder with a few utility classes I've
created. Now when I do the Copy Web the production site complains that the
App_Code folder is not allowed.

So my questions specifically are:

1) Is there a way where I can still use Copy Web in this scenario?

2) If not, how do I tell my local machine to not precompile and clear itself
from any precompiled files, so that when I do a copy web the remote site is
not in a precompiled mote? In other words, I assume my local machine has
the precompiled files that are being copied with Copy Web. So I do these
get deleted, and how do I set things set up locally so its no longer
prcompiled, so that my production server will be happy once I do a complete
Copy Web to try and straighten things out?

3) If I have to resort to a FTP copy, files with what extension should get
copied specifically? Or perhaps its easier toi look at it the other way -
which file extensions need to be deleted from the production server so it
does not see the web pages there as being "precompiled"?

Thanks so much. I'm looking forward to your answer as I have been stuck on
this for a few days. I really appreciate the help.

Steve
 
J

Juan T. Llibre

Hi, Steve.

What this sounds like is that, at some point, the "Publish Web Site"
tool was used instead of the "Copy Web" tool, and that the
"Allow this precompiled site to be updatable" option was not selected.

See : http://msdn2.microsoft.com/en-us/library/1y1404zt
for a step-by-step guide to using the "Publish Web Site" tool.

You can change the "Allow this site...to be updatable" option.

You might also want to take a look at the "Copying a website" walkthrough:
http://msdn2.microsoft.com/en-us/library/xay0wxbf

and at : http://msdn2.microsoft.com/en-us/library/1cc82atw
"Copying Web Sites with the Copy Web Site Tool"

You might be missing a key step in the process,
and reviewing those walkthroughs might point it out to you.




Juan T. Llibre
ASP.NET MVP
ASP.NET FAQ : http://asp.net.do/faq/
==========================
 
S

Steve Franks

Thanks. I thnk you hit the nail on the head in that at one point a long
time ago I did use the Publish Web Site tool and probably did not check that
option.

It looks like I've resolved it by deleting the entire remote site and then
using Copy Web over again.

Steve
 
S

Steve Franks

Thanks again Juan. On a different subject - since we are talking I was
wondering what approach you use to resolve the issue I posted about in a
posting called: "How to remove virtual path from root url of dev web server"
in this newsgroup on August 28. Likewise I have a similiar issue that I
posted about under the subject "Masterpage issue with relative links to
background images" on August 27.

It would be great if you could please share your thoughts on these
challenges.

Thank you,

Steve
 
Joined
Jun 10, 2010
Messages
1
Reaction score
0
Steve Franks said:
I'm using VS.NET 2005 Beta 2. I have a helper C# class I wrote that I placed
in my /App_Code directory. Everything runs fine locally. However when I
use the "Copy Web" function to upload the site to the production server, I
get the following error when trying to run the page on production:
"System.Web.HttpException: The directory '/App_Code' is not allowed
because the application is precompiled."

Anyone know this works fine locally but not on development? How can I
resolve this?

Also on a related note I read a lot about a new "\code" directory in ASP.NET
2.0. Am I correct to assume that at some point they changed this from \code
to \App_Code and these are the same thing?

Steve

The application is being precompiled when you use the "Copy Web" function but retaining the app_code folder.

After you copy it over using the Copy Web function try the following:
1) You can try to manually delete the app_code folder at the production server location after you copy it over.
Or
2) delete the App_Code.dll in the Bin Directory . you may also have a precompiled.config file that is in the root directory of your site that also needs to be deleted .
If you get a Global.ASAX Ambiguous error. then also delete the GlobalAsax.dll in the Bin Directory
 
Last edited:

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

Forum statistics

Threads
473,766
Messages
2,569,569
Members
45,042
Latest member
icassiem

Latest Threads

Top