Недавно я попытался обновить проект .net 2.0, DAL которого был сгенерирован SubSonic 2.2, до .NET 4.0 в Visual Studio 2010.
Проекты конвертировались без ошибок, но теперь я получаю довольно мерзкое сообщение об ошибке, когда пытаюсь его запустить.
System.Security.VerificationException: Operation could destabilize the runtime.
at SubSonic.DataProvider.ApplyConfig(NameValueCollection config, Boolean& parameterValue, String configName) in C:\Documents and Settings\Desktop\4.0 Production\rel_1.0\server\Server.DAL\Server.DAL.SubSonic\DataProviders\DataProvider.cs:line 955
at SubSonic.DataProvider.Initialize(String name, NameValueCollection config) in C:\Documents and Settings\Desktop\4.0 Production\rel_1.0\server\Server.DAL\Server.DAL.SubSonic\DataProviders\DataProvider.cs:line 916
at System.Web.Configuration.ProvidersHelper.InstantiateProvider(ProviderSettings providerSettings, Type providerType)
Код, в котором выдается исключение:
ApplyConfig(config, ref extractClassNameFromSPName, ConfigurationPropertyName.EXTRACT_CLASS_NAME_FROM_SP_NAME);
private static void ApplyConfig(System.Collections.Specialized.NameValueCollection config, ref bool parameterValue, string configName)
{
if(config[configName] != null)
{
parameterValue = Convert.ToBoolean(config[configName]);
}
}
Он выполняет аналогичные вызовы здесь, с той лишь разницей, что это строго строка, а не логическое значение, которым он манипулирует.
private static void ApplyConfig(System.Collections.Specialized.NameValueCollection config, ref string parameterValue, string configName)
{
if(config[configName] != null)
{
parameterValue = config[configName];
}
}
config определяется как System.Collections.Specialized.NameValueCollection с 3 ключами generateNullableProperties, connectionStringName, generateNamespace ExtractClassNameFromSPName == false
EDIT1: код, вызывающий ошибку, находится в методе Application_Start() объекта Global.asax.
System.Data.SqlClient.SqlDependency.Start(SystemSetting.Schema.Provider.DefaultConnectionString);
EDIT2: ошибка всплывает, указывая на ошибку targetinvocation, ссылающуюся на мой файл web.config.
<SubSonicService defaultProvider="appPlan">
<providers>
<clear/>
<add name="appPlan" type="SubSonic.SqlDataProvider, appPlan.Server.DAL.SubSonic" generateNullableProperties="false" connectionStringName="appPlan" generatedNamespace="appPlan.Server.DAL"/>
</providers>
</SubSonicService>
кто-нибудь еще сталкивался с такой проблемой? Я мог бы перейти на SubSonic3.x, но я считаю, что это было бы гораздо более серьезное предприятие.
благодаря.