1

I'm trying to troubleshoot a .NET 2.0 error with Outlook Web Access on a SBS 2008 Server.

The error I'm getting is:

Exception information: 
Exception type: HttpException 
Exception message: Could not load file or assembly 'Microsoft.Exchange.Data,     
Version=8.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' or one of its 
dependencies. The system cannot find the file specified. 
(C:\Program Files\Microsoft\Exchange Server\ClientAccess\owa\web.config line 51) 

On line 51 of web.config, I have:

                this is line 51 ---><add assembly="Microsoft.Exchange.Data,
                Version=8.0.0.0,
                Culture=neutral,
                publicKeyToken=31bf3856ad364e35"/>
            <add assembly="Microsoft.Exchange.Data.Storage,
                Version=8.0.0.0,
                Culture=neutral,
                publicKeyToken=31bf3856ad364e35"/>
        </assemblies>

So in "web.config-ese", how does it "know" where that Microsoft.Exchange.Data assembly .DLL is, and how can I determine this so as to verify that the file exists or not?

gravyface
  • 889
  • 2
  • 12
  • 26
  • Also, check the version of Exchange you are using. Based on the reference in the Web.config, it looks like it's expecting "version 8.0.0.0" of the assemblies, which sounds like Exchange 2007. If you have something other than Exchange 2007 installed, it might not work correctly. – Ben McCormack Aug 17 '10 at 15:50

2 Answers2

3

It looks in the global assembly cache (GAC) in c:\windows\assembly. It has to be installed in the gac using the gacutil utility to install, which is often installed via the installation process of the program...

Brian Mains
  • 50,520
  • 35
  • 148
  • 257
  • As of .NET 4.0, there's another GAC located at `C:\WINDOWS\Microsoft.NET\assembly` for .NET 4.0 components. I don't think Exchange would be there, but for other assemblies, this is a good second place to look. – Ben McCormack Aug 17 '10 at 15:46
  • 1
    It could also be in the bin folder of the application as well :) But in regards to OWA, I don;t know where MS put it. Side note, if you are missing DLLs on an OWA installation, I think more things have gone wrong than a simple whoops, I deleted that DLL accidentally. – Tommy Aug 17 '10 at 15:47
  • I've compared owa/bin between both a working SBS 2008 server and the tanked one; no differences. GAC in C:\windows\assembly looks the same too. – gravyface Aug 17 '10 at 16:18
  • @Tommy: no deletion, server went down hard after a power failure a few days ago, came back up, no OWA or ActiveSync. I think there was a pending update/deletion or something with WSUS that never got executed properly after it went down, but nothing in the logs about install errors, just that there were updates installed 4 or 5 days prior to the crash. – gravyface Aug 17 '10 at 16:21
  • what's odd is that comparing the working GAC with the non-working GAC, neither have an assembly called "Microsoft.Exchange.Data" nor is their one in the `owa/bin` folder. There is one in the Exchange Server\bin directory, however, but I don't know if it's even looking in there or not. Might be time for procmon. – gravyface Aug 17 '10 at 16:27
  • It examines the existence of the DLL, plus checks the public key token and version, so make sure those match too, but if the DLL isn't there, that's not a good sign. – Brian Mains Aug 17 '10 at 16:42
  • Marking this as correct answer to the question (unfortunately problem still exists). – gravyface Aug 17 '10 at 18:15
  • Hey, someone else had to copy the DLL locally to the application bin directory, maybe that might be part of the problem: http://social.technet.microsoft.com/forums/en-US/exchangesvrdevelopment/thread/47305c2a-7831-487f-a31d-498559d850d0/ – Brian Mains Aug 17 '10 at 18:48
0

In a web site the web server will look in both the GAC and the bin directory. And easy way to see what's in your GAC is to right click add reference and see if the dll is listed in the .NET tab.

To add a dll to the GAC look here for a guide.

Hope this helps.

madcapnmckay
  • 15,782
  • 6
  • 61
  • 78