Saturday, February 5, 2011

How to reference a DLL in the web.config?

Hi guys,

I have a DLL in the BIN folder, and I need it to be referenced in the web.config, or I get that annoying error:

Description: An error occurred during the compilation of a resource required to service this request. Please review the following specific error details and modify your source code appropriately.

Compiler Error Message: CS0234: The type or namespace name 'ServiceModel' does not exist in the namespace 'Microsoft' (are you missing an assembly reference?)

This DLL is not in the GAC, and for that I can not use the

<assemblies><add ...

So my guess is that I need to use the configSections like

<configSections>
  <section name="Microsoft.System.Web" 
           type="Microsoft.System.Web,
                 Version=3.0.0.0, Culture=neutral,
                 PublicKeyToken=10633fbfa3fade6e "/>
</configSections>

What should be the correct code?

  • Funny I found that if the dll and all its dependencies are in the bin directory, it can be used even if not in the .SLN file or web.config.

    balexandre : Nop ... it only works because it will get the DLL's from the GAC. :) - if you do not have it there, then you wil get the error if not referencing it in the web.config
    Joshua : I guarantee you the DLLs are not in the gac.
    From Joshua
  • Unless the assembly you are using is strongly named, placing it in the bin directory is all you should need to do.

    The configSection you mention is not for adding references to assemblies. This is to define configuration sections in the web.config. So you could add a config section called exampleSection by adding a section tag to configsSections. This would allow you do create a configuration section named "exampleSection" later in the web.config.

    The reason that there is an assembly reference in the configSections section definition is that each config section is specific to an assembly for which it is providing configuration data. The configSection might be specific to the website assembly itself (in which case that is the assembly you would specify) or it might be some other assembly used by the site. Creating a configSection gives you the ability to group settings that are related in one section, instead of inter mingling them all application wide in the appsettings.

    If you gave more information about what you were having trouble with, maybe we could help. What is the assembly and how is it being used?

    balexandre : the dll name is in the question: Microsoft.System.Web, and seeing the tags you get that this is part of WCF REST
    From Jim Petkus

0 comments:

Post a Comment