Is it possible that you renamed the assembly when you deployed it? The key
exception that I see is "The located assembly's manifest definition does not
match the assembly reference."

--Paul Mehner

-----Original Message-----
From: Discussion of advanced .NET topics.
[mailto:[EMAIL PROTECTED] On Behalf Of Efran Cobisi
Sent: Monday, May 28, 2007 6:19 AM
To: ADVANCED-DOTNET@DISCUSS.DEVELOP.COM
Subject: [ADVANCED-DOTNET] TypeInitializationException while opening a
contextual connection in a SqlServer 2005 deployed assembly

Hi all,

I'm trying to have a managed assembly working properly after being
deployed to an instance of SqlServer 2005. Unfortunately, whenever I
call a particular user defined function which maps to a method of this
assembly, which in turns open a new contextual connection, a weird
exception is thrown. I've already googled a bit and I found this kind of
exception could be related to an invalid configuration file for the
application; unfortunately there's no configuration file deployed with
this assembly.

Here is the full exception details:

-----------
A .NET Framework error occurred during execution of user-defined routine
or aggregate "ResolveCmsReferences":
System.TypeInitializationException: The type initializer for
'System.Data.SqlClient.SqlConnection' threw an exception. --->
System.TypeInitializationException: The type initializer for
'System.Data.SqlClient.SqlConnectionFactory' threw an exception. --->
System.TypeInitializationException: The type initializer for
'System.Data.SqlClient.SqlPerformanceCounters' threw an exception. --->
System.IO.FileLoadException: The located assembly's manifest definition
does not match the assembly reference. (Exception from HRESULT: 0x80131040)
System.IO.FileLoadException:
   at System.Diagnostics.Switch.InitializeWithStatus()
   at System.Diagnostics.Switch.get_SwitchSetting()
   at System.Diagnostics.TraceSwitch.get_Level()
   at System.Data.ProviderBase.DbConnectionPoolCounters..ctor(String
categoryName, String categoryHelp)
   at System.Data.SqlClient.SqlPerformanceCounters..ctor()
   at System.Data.SqlClient.SqlPerformanceCounters..cctor()
System.TypeInitializationException:
   at System.Data.SqlClient.SqlConnectionFactory..ctor()
   at System.Data.SqlClient.SqlConnectionFactory..cctor()
System.TypeInitializationException:
   at System.Data.SqlClient.SqlConnection..cctor()
System.TypeInitializationException:
   at System.Data.SqlClient.SqlConnection..ctor(String connectionString)
   at ***.UserDefinedFunctions.ResolveCmsReference(String assetId)
   at ***.UserDefinedFunctions.CmsImageMatchEvaluator(Match maCurrent)
   at
System.Text.RegularExpressions.RegexReplacement.Replace(MatchEvaluator
evaluator, Regex regex, String input, Int32 count, Int32 startat)
   at System.Text.RegularExpressions.Regex.Replace(String input,
MatchEvaluator evaluator, Int32 count, Int32 startat)
   at System.Text.RegularExpressions.Regex.Replace(String input,
MatchEvaluator evaluator)
   at ***.UserDefinedFunctions.ResolveCmsReferences(SqlString sqlInput)
.
The statement has been terminated.
-----------

The method which actually throws the exception is this one (I've omitted
the irrelevant lines of code):

-----------
[SqlFunction]
public static SqlString ResolveCmsReferences(SqlString sqlInput)
{
    // strip...
    using (SqlConnection connContext = new SqlConnection("context
connection=true"))
    {
       // The following line is throwing the aforementioned exception
        connContext.Open();
       // strip...
    }
    // strip...
}
-----------

The SQLCLR assembly has been deployed with an EXTERNAL ACCESS permission
level.

Any help would be very appreciated.
Thanks.

--
Efran Cobisi
http://www.cobisi.com

===================================
This list is hosted by DevelopMentorR  http://www.develop.com

View archives and manage your subscription(s) at http://discuss.develop.com

===================================
This list is hosted by DevelopMentorĀ®  http://www.develop.com

View archives and manage your subscription(s) at http://discuss.develop.com

Reply via email to