tags:

views:

39

answers:

1

I'm trying to set up a web app (32bit on ii7/win7, 32bit setting is enabled, everything is compiled to x86, using vs2008), but there's clearly some dll module loading issue happening. I've been watching procmon and fusion logs but I'm not seeing the name of the missing dll.

I'm a complete newbie to asp.net (but fairly heavy experience on other platforms).

I know I can call depends.exe on a binary to see what the dependancies are, but how do I do it for asp.net? specifically, is it possible to get a list of the dlls that iis7 loads for my application?

update: I manually blew away all of the binaries for my application and rebuilt (clean didnt seem to do the trick, I guess). it's now sort of working. or at least it's getting further and more detailed.

+1  A: 

An asp.net web project dll shouldn't depend on anything that is not part of the default .net run-time or explicitly referenced in the project. I would start by reviewing the references. Noramlly an asp.net web project has a bin folder that contains the compiled website/webapplication and any dll's that it depends on (aside from the .net run-time). This is usually done by the programming tool used to create the project.

If you still don't find the culprit, you could try using Filemon (http://technet.microsoft.com/en-gb/sysinternals/bb896642.aspx) and use it to watch IIS to see what files it is looking for and isn't finding.

An additional option is to examine the web.config file that should have been included with the web site/application. Its an XML file and usually has an Assemblies section that lists assemblies that should be loaded. For example you might see:

<assemblies>
    <add assembly="MySql.Data, Version=6.2.3.0, Culture=neutral,
    PublicKeyToken=C5687FC88969C44D"/>
</assemblies>

This means that the code wants to use the MySQL.Data.dll, and specifically version 6.2.3.0 of that DLL. It is possible to have different versions of .Net dll files installed at the same time. So you might have the desired DLL, but not the correct version as specified in the Web.Config file.

William Leader
this is a solid suggestion (though filemon is now part of procmon), and I've been basically trying to do this. I was wondering if there's a way to get more debug info somehow. like architecture of each dll that is being opened, automatically?voted up either way, because you're right.
Oren Mazor
with respect to your edit: thats a good point. I chceeked that out, but its entirely possible that my .net setup is clobbered on this machine. this is my second week with win7. I'll look into potential dll mismatch (i.e. some coming from net2.0 and some coming from 3.5)
Oren Mazor
Hope it helps. I'm out of ideas.
William Leader
indirectly solved my problem: I ended up deleting all binaries and rebuilding. I guess studio wasn't overwriting something properly!
Oren Mazor