What's this 2.0 compilation anomaly?

C

clintonG

At design-time the application just decides to go boom claiming it can't
find a dll. This occurs sporadically. Doing a simple edit in the HTML for
example and then viewing the application has caused the application to go
boom. Sometimes the page will compile and run using F5 and others not.

So I do the web search tango looking around the blogs and the tuts and
determine I should go into Temporary ASP.NET Files and delete the directory
containing the application's temporary files. I have to reset the machine to
delete it. Restart VS2005 and go back to work, edit, review, edit, review,
edit, review and then BOOM. All I've been working on is the HTML.

I'll dump the results and hope somebody knows about this and can help
explain so I can get busy again...

error CS0006: Metadata file
'C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET
Files\2beta_metro2\331c872a\fd27ed37\App_Code.7swuhu9q.dll' could not be
found

Source Error:
[No relevant source lines]

C:\WINDOWS\system32> "C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\csc.exe"
/t:library /utf8output
/R:"C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET
Files\2beta_metro2\331c872a\fd27ed37\App_Code.7swuhu9q.dll"
/R:"C:\WINDOWS\assembly\GAC\BasicFrame.WebControls.BasicDatePicker\1.1.1959.0__8c5b7d113ff0d5cd\BasicFrame.WebControls.BasicDatePicker.dll"
/R:"C:\WINDOWS\assembly\GAC_32\System.Web\2.0.0.0__b03f5f7f11d50a3a\System.Web.dll"
/R:"C:\WINDOWS\assembly\GAC_MSIL\System.Drawing\2.0.0.0__b03f5f7f11d50a3a\System.Drawing.dll"
/R:"C:\WINDOWS\assembly\GAC_32\System.Data\2.0.0.0__b77a5c561934e089\System.Data.dll"
/R:"C:\WINDOWS\assembly\GAC_MSIL\Accessibility\2.0.0.0__b03f5f7f11d50a3a\Accessibility.dll"
/R:"C:\WINDOWS\assembly\GAC_MSIL\System.Configuration\2.0.0.0__b03f5f7f11d50a3a\System.Configuration.dll"
/R:"C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET
Files\2beta_metro2\331c872a\fd27ed37\App_Web_threestackedpanels.master.6044e34.8is_oyvt.dll"
/R:"C:\WINDOWS\assembly\GAC_MSIL\System\2.0.0.0__b77a5c561934e089\System.dll"
/R:"C:\WINDOWS\assembly\GAC_MSIL\System.Web.Mobile\2.0.0.0__b03f5f7f11d50a3a\System.Web.Mobile.dll"
/R:"C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\mscorlib.dll"
/R:"C:\WINDOWS\assembly\GAC_MSIL\System.Xml\2.0.0.0__b77a5c561934e089\System.Xml.dll"
/R:"C:\WINDOWS\assembly\GAC_32\System.EnterpriseServices\2.0.0.0__b03f5f7f11d50a3a\System.EnterpriseServices.dll"
/R:"C:\WINDOWS\assembly\GAC_MSIL\System.Web.Services\2.0.0.0__b03f5f7f11d50a3a\System.Web.Services.dll"
/out:"C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET
Files\2beta_metro2\331c872a\fd27ed37\App_Web_channelbuilder.aspx.851e3233.gbobafmd.dll"
/D:DEBUG /debug+ /optimize-
/win32res:"C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET
Files\2beta_metro2\331c872a\fd27ed37\tevfep2j.res" /w:4 /nowarn:1659;1699
"C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET
Files\2beta_metro2\331c872a\fd27ed37\App_Web_channelbuilder.aspx.851e3233.gbobafmd.0.cs"
"C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET
Files\2beta_metro2\331c872a\fd27ed37\App_Web_channelbuilder.aspx.851e3233.gbobafmd.1.cs"
"C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET
Files\2beta_metro2\331c872a\fd27ed37\App_Web_channelbuilder.aspx.851e3233.gbobafmd.2.cs"


NOTE:

Observe that my virtual application is located at 2beta_metro2 where
inetpub\wwwroot\2beta was where I began building the metro2 application
which is now going boom every time I try to load the page using 2.0 with
VS2005 and does the same when trying to load the application with a browser
and an HTTP request.

Now if you don't mind, I am going to vaporize myself with copious amounts of
Captain Morgan's poured into hot chocolate milk.

<%= Clinton Gallagher
 
J

Jim Cheshire

clintonG said:
At design-time the application just decides to go boom claiming it
can't find a dll. This occurs sporadically. Doing a simple edit in
the HTML for example and then viewing the application has caused the
application to go boom. Sometimes the page will compile and run
using F5 and others not.

In ASP.NET 2.0, the assembly that executes is made up of the code-behind AND
the .aspx file. When you browse the page, those two are compiled into the
dynamic assembly in the Temporary ASP.NET Files folder. When you edit the
..aspx page, the class must be recompiled. This is the concept of partial
classes.

I've not seen the issue you describe, but it seems that this might occur if
something is locking the Temporary ASP.NET Files folder or something. I did
hear of an issue a while back where McAfee was locking files in that
location and causing issues. Not sure if that's a possibility in your case
or not.

--
Jim Cheshire
================================
Blog: http://blogs.msdn.com/jamesche

Latest entry: Digging into Objects
Describes the details of digging into
memory usage with the debugger.
 
M

Mr Newbie

Like your blog by the way, good reading, it's not often one reads this kind
of low level stuff !
 
J

Jim Cheshire

Mr said:
Like your blog by the way, good reading, it's not often one reads
this kind of low level stuff !

Thanks. I've kept it basic and pretty 101 level so far. I plan on getting
into more in-depth concepts as I develop a good base.

--
Jim Cheshire
================================
Blog: http://blogs.msdn.com/jamesche

Latest entry: Digging into Objects
Describes the details of digging into
memory usage with the debugger.
 
C

Christopher Reed

As it was already stated, this is an issue with using partial classes where
the ASPX page and the code-behind is merged together at compile time. When
first starting out with VWD Express, I had this same problem. What I
discovered that I needed to do was simple.

1) Always build the web page after you make any changes. Not doing so may
result in either no apparent change in your web page or the error listed
below.

2) Even if you're doing a simple rebuild after each change, especially if
you have some code in your App_Code directory, you might keep getting the
error, rebuild the web site. This will generally clean up any issues that
may be lingering because your files and DLLs are out of sync.

Hope this helps!
--
Christopher A. Reed
"The oxen are slow, but the earth is patient."

clintonG said:
At design-time the application just decides to go boom claiming it can't
find a dll. This occurs sporadically. Doing a simple edit in the HTML for
example and then viewing the application has caused the application to go
boom. Sometimes the page will compile and run using F5 and others not.

So I do the web search tango looking around the blogs and the tuts and
determine I should go into Temporary ASP.NET Files and delete the
directory containing the application's temporary files. I have to reset
the machine to delete it. Restart VS2005 and go back to work, edit,
review, edit, review, edit, review and then BOOM. All I've been working on
is the HTML.

I'll dump the results and hope somebody knows about this and can help
explain so I can get busy again...

error CS0006: Metadata file
'C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET
Files\2beta_metro2\331c872a\fd27ed37\App_Code.7swuhu9q.dll' could not be
found

Source Error:
[No relevant source lines]

C:\WINDOWS\system32>
"C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\csc.exe" /t:library
/utf8output /R:"C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\Temporary
ASP.NET Files\2beta_metro2\331c872a\fd27ed37\App_Code.7swuhu9q.dll"
/R:"C:\WINDOWS\assembly\GAC\BasicFrame.WebControls.BasicDatePicker\1.1.1959.0__8c5b7d113ff0d5cd\BasicFrame.WebControls.BasicDatePicker.dll"
/R:"C:\WINDOWS\assembly\GAC_32\System.Web\2.0.0.0__b03f5f7f11d50a3a\System.Web.dll"
/R:"C:\WINDOWS\assembly\GAC_MSIL\System.Drawing\2.0.0.0__b03f5f7f11d50a3a\System.Drawing.dll"
/R:"C:\WINDOWS\assembly\GAC_32\System.Data\2.0.0.0__b77a5c561934e089\System.Data.dll"
/R:"C:\WINDOWS\assembly\GAC_MSIL\Accessibility\2.0.0.0__b03f5f7f11d50a3a\Accessibility.dll"
/R:"C:\WINDOWS\assembly\GAC_MSIL\System.Configuration\2.0.0.0__b03f5f7f11d50a3a\System.Configuration.dll"
/R:"C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET
Files\2beta_metro2\331c872a\fd27ed37\App_Web_threestackedpanels.master.6044e34.8is_oyvt.dll"
/R:"C:\WINDOWS\assembly\GAC_MSIL\System\2.0.0.0__b77a5c561934e089\System.dll"
/R:"C:\WINDOWS\assembly\GAC_MSIL\System.Web.Mobile\2.0.0.0__b03f5f7f11d50a3a\System.Web.Mobile.dll"
/R:"C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\mscorlib.dll"
/R:"C:\WINDOWS\assembly\GAC_MSIL\System.Xml\2.0.0.0__b77a5c561934e089\System.Xml.dll"
/R:"C:\WINDOWS\assembly\GAC_32\System.EnterpriseServices\2.0.0.0__b03f5f7f11d50a3a\System.EnterpriseServices.dll"
/R:"C:\WINDOWS\assembly\GAC_MSIL\System.Web.Services\2.0.0.0__b03f5f7f11d50a3a\System.Web.Services.dll"
/out:"C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET
Files\2beta_metro2\331c872a\fd27ed37\App_Web_channelbuilder.aspx.851e3233.gbobafmd.dll"
/D:DEBUG /debug+ /optimize-
/win32res:"C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET
Files\2beta_metro2\331c872a\fd27ed37\tevfep2j.res" /w:4 /nowarn:1659;1699
"C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET
Files\2beta_metro2\331c872a\fd27ed37\App_Web_channelbuilder.aspx.851e3233.gbobafmd.0.cs"
"C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET
Files\2beta_metro2\331c872a\fd27ed37\App_Web_channelbuilder.aspx.851e3233.gbobafmd.1.cs"
"C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET
Files\2beta_metro2\331c872a\fd27ed37\App_Web_channelbuilder.aspx.851e3233.gbobafmd.2.cs"


NOTE:

Observe that my virtual application is located at 2beta_metro2 where
inetpub\wwwroot\2beta was where I began building the metro2 application
which is now going boom every time I try to load the page using 2.0 with
VS2005 and does the same when trying to load the application with a
browser and an HTTP request.

Now if you don't mind, I am going to vaporize myself with copious amounts
of Captain Morgan's poured into hot chocolate milk.

<%= Clinton Gallagher
 
J

Jim Cheshire

Christopher said:
2) Even if you're doing a simple rebuild after each change,
especially if you have some code in your App_Code directory, you
might keep getting the error, rebuild the web site. This will
generally clean up any issues that may be lingering because your
files and DLLs are out of sync.

Christopher,

You don't have to rebuild at all. When you browse the page, the DLL is
rebuilt because we have to recompile the partial class into the assembly.
That's why you can make changes to code-behind or the webform itself and
just browse the page without building the project to see the changes.

This architecture has one more really cool facet. You can now take advantage
of enhancements it brings to edit and continue. If you break into your app
in 2.0, you can, for example, then add a new class, add a property to that
class, instantiate an instance of that class in your code-behind, access the
property of that class, etc. and then continue and your code pages will be
in full effect.

The partial class architecture brings with it many cool new capabilities.

--
Jim Cheshire
================================
Blog: http://blogs.msdn.com/jamesche

Latest entry: Digging into Objects
Describes the details of digging into
memory usage with the debugger.
 
C

clintonG

Thanks for the insight. I do have McAfee VirusScan Online sitting in the
task tray but this anomaly has not occurred with other 2.0 pages in other
projects -- yet -- so is there any way to monitor locks on a directory?

Noting this is an XP Pro SP2 machine I've already excluded the directory to
disallow the indexing service.

<%= Clinton Gallagher
 
J

Jim Cheshire

clintonG said:
Thanks for the insight. I do have McAfee VirusScan Online sitting in
the task tray but this anomaly has not occurred with other 2.0 pages
in other projects -- yet -- so is there any way to monitor locks on a
directory?

You can run Filemon to see if you're getting an ACCESS DENIED on those
files.

--
Jim Cheshire
================================
Blog: http://blogs.msdn.com/jamesche

Latest entry: Digging into Objects
Describes the details of digging into
memory usage with the debugger.
 
C

clintonG

I'll try Filemon to see what can be seen.

Sorry to say so, but I forgot to mention that I've been in the habit of
running two instances of VS2005. Perhaps it is one instance or the other of
VS2005 that is locking access noting I have different projects loaded into
each instance. As I recall running two instances of VS2003 would not allow
the use of two instances of the debugger which I discovered while trying to
convert a VB.NET application to C#. Perhaps there is a causal connection
here.

Meanwhile, I've deleted the directory in the Temporary ASP.NET Files, the
application has loaded and appears stable. I will run once instance of
VS2005 today to see what if anything may occur.

<%= Clinton Gallagher
 
J

Jim Cheshire

clintonG said:
As I recall running two instances
of VS2003 would not allow the use of two instances of the debugger
which I discovered while trying to convert a VB.NET application to
C#. Perhaps there is a causal connection here.

You can't attach the debugger twice to a process.

--
Jim Cheshire
================================
Blog: http://blogs.msdn.com/jamesche

Latest entry:
Getting the PID and TID of a COM Call

Describes how to get the PID of the
dllhost process a COM call is executing
in and how to locate the thread as well.
 
C

clintonG

Yes but...
Is it clear that I was running two separate instances of VS2003 each of
which was using separate instances of an application, one was VB.NET and the
other I was converting to C#? If that ain't separate processes I need some
more smedumacation.

My suggestion to Product Feedback -- as I recall -- implied multiple
instances of the debugger may be supported in future releases. I haven't
tried to do so using VS2005.

I haven't gotten much done today but page compilation seems stable while
running one instance of VS2005.

<%= Clinton Gallagher
 
C

Christopher Reed

Jim,

Overall, I know that you should not have to rebuild with VS/VWD to get the
application to run. My point was that I too received this error and the
only way I could easily make it go away was to do the rebuild of the website
within VWD. (The hard way was to delete the application subfolder in the
Temporary ASP.NET Files folder; the only problem doing it that way was that
IIS had to be stopped to release the files to be deleted.) Granted, the web
pages will rebuild themselves on their own as they should, but I believe
that the problem that I (and the original poster) ran into was that the
compilations were getting out of sync.

I'm currently working on a project where early on I experienced this
problem. A possible cause is that the original code for this "new" 2.0 web
app was actually written in ASP.NET 1.1 outside of Visual Studio using a
text editor. After working with it for a few weeks, the error hasn't
returned and I have no problem moving to code to another machine and running
it there without any VS/VWD influence.
 
J

Jim Cheshire

Christopher said:
Jim,

Overall, I know that you should not have to rebuild with VS/VWD to
get the application to run. My point was that I too received this
error and the only way I could easily make it go away was to do the
rebuild of the website within VWD. (The hard way was to delete the
application subfolder in the Temporary ASP.NET Files folder; the only
problem doing it that way was that IIS had to be stopped to release
the files to be deleted.) Granted, the web pages will rebuild
themselves on their own as they should, but I believe that the
problem that I (and the original poster) ran into was that the
compilations were getting out of sync.
I'm currently working on a project where early on I experienced this
problem. A possible cause is that the original code for this "new"
2.0 web app was actually written in ASP.NET 1.1 outside of Visual
Studio using a text editor. After working with it for a few weeks,
the error hasn't returned and I have no problem moving to code to
another machine and running it there without any VS/VWD influence.

Yeah, no doubt we'll all see apparently freaky behavior for a while we we
get used to 2.0 being used in a real world environment. Always happens. :)

--
Jim Cheshire
================================
Blog: http://blogs.msdn.com/jamesche

Latest entry:
Getting the PID and TID of a COM Call

Describes how to get the PID of the
dllhost process a COM call is executing
in and how to locate the thread as well.
 
J

Jim Cheshire

clintonG said:
Yes but...
Is it clear that I was running two separate instances of VS2003 each
of which was using separate instances of an application, one was
VB.NET and the other I was converting to C#? If that ain't separate
processes I need some more smedumacation.

That would be the case if you were attaching to devenv.exe in order to debug
Visual Studio. Since you don't have the source code to Visual Studio, I
suspect you weren't doing that. :)

The process I'm talking about is the worker process, aspnet_wp or w3wp.

--
Jim Cheshire
================================
Blog: http://blogs.msdn.com/jamesche

Latest entry:
Getting the PID and TID of a COM Call

Describes how to get the PID of the
dllhost process a COM call is executing
in and how to locate the thread as well.
 
C

clintonG

<snip />

Well fellas, I still have the "freakies."
As I said, I was running two instances of VS2005 but had different projects
in each and thought that could be involved. Nope. Its like the simplest of
edits can make it go boom. Even an HTML edit and view in browser. Boom!

Just moments ago I gave a class and a method the same name. Got yelled at.
Renamed. Tried to load a page and boom! Out go the lights.

I keep MMC open all the time most of the time but its still a hassle to
disconnect IIS, delete the temporary directory and reconnect. What a PITA.
FrontPage all over again.

<%= Clinton Gallagher
METROmilwaukee (sm) "A Regional Information Service"
NET csgallagher AT metromilwaukee.com
URL http://metromilwaukee.com/
URL http://clintongallagher.metromilwaukee.com/
 
C

Christopher Reed

Trying Rebuild Web Site (the one without a task bar icon) that's under the
Build menu item.
 
C

clintonG

That's F6 and I've tried that already. My application can go boom even
editing HTML source but it hasn't been happening as often as it was now that
I'm only running one instance of VS2005.

<%= Clinton Gallagher
 

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,769
Messages
2,569,580
Members
45,053
Latest member
BrodieSola

Latest Threads

Top