- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我最近尝试将一个由 SubSonic 2.2 生成 DAL 的 .net 2.0 项目升级到 Visual Studio 2010 下的 .NET 4.0。
项目转换没有错误,但现在我在尝试启动它时收到一条相当恶劣的错误消息。
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]);
}
}
它在这里执行类似的调用,唯一的区别是它严格来说是一个字符串而不是它正在操作的 bool 值。
private static void ApplyConfig(System.Collections.Specialized.NameValueCollection config, ref string parameterValue, string configName)
{
if(config[configName] != null)
{
parameterValue = config[configName];
}
}
config 定义为具有 3 个键的 System.Collections.Specialized.NameValueCollectiongenerateNullableProperties、connectionStringName、generatedNamespaceextractClassNameFromSPName == false
EDIT1:引发错误的代码在 Global.asax 的 Application_Start() 方法中
System.Data.SqlClient.SqlDependency.Start(SystemSetting.Schema.Provider.DefaultConnectionString);
EDIT2:错误冒出并引发引用我的 web.config 的 targetinvocation 错误
<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,但我相信这将是一项更大的任务。
谢谢。
最佳答案
我以前在直接从手工制作的 IL 生成程序集时看到过这个异常。 .NET 运行时验证程序集中原始指令的正确性,尤其是在将程序集加载到受限上下文中时。例如,有一个检查以确保在执行方法之前将所需数量的参数加载到调用堆栈中。
即使验证失败,程序集仍然可以加载;但它只能在完全信任的情况下运行。在部分信任的情况下,您会收到此“操作可能会破坏运行时的稳定性”错误。原因是如果程序集“行为不正确”,运行时无法保证程序集在部分信任下的安全操作。
您可以使用 PEVERIFY
工具(通过 Visual Studio 命令提示符可用)手动检查程序集。尝试验证所有引用的程序集以查看报告的内容。我怀疑 .NET 2.0 和 .NET 4.0 之间的验证规则发生了变化,现在导致 SubSonic 2.2 程序集之一的验证失败。
你在回复 Fun Mun Pieng 时提到的作弊也表明验证是问题所在。
关于c# - System.Security.VerificationException : Operation could destabilize the runtime.(亚音速 2.2),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5199143/
这是一个令人尴尬的基本 n 层问题。 我在 VS2008 中使用亚音速创建了一个 DAL 项目。它有一个小部件类、一个小部件集合类和一个小部件 Controller 类。 我创建了引用它的业务逻辑项目
我有一个古老的困惑,我正在尝试使用亚音速将其铲入层中。问题是,我有这样的情况: 当 Hal 登录时,他的登录名使用数据库 X 来查找数据,使用数据库 Y 来查找他的帐户,使用数据库 Z 来查找他的联系
我有一个使用 Subsonic 生成的不错的 DAL。有没有办法为 BLL 生成骨架?我不想将 SS 层直接插入我的 GUI。 我浏览了两个 SS 论坛,似乎每个人都称 SSS 生成的层为 DAL,但
尝试使用 linq 在 subsonic 中进行左连接,但它似乎不起作用,我遇到了一个大错误。 我很确定查询是正确的,因为我已经用对象和 Linq2Sql 做了几次。 var
我有一个数据库表(Profile)来描述一个人。该表有一列“性别”(整数)。在 .NET 部分我有: public enum Sex { Male = 1, Female = 2 } public c
据我所知,Subsonic 2.2 需要 MySQL.data 5.2.3 dll。我正在尝试在 Visual Studio 中为 VB 项目集成亚音速 DAL。该项目已经使用了大量数据集。因此,Vi
我正在玩弄 Subsonic 3 的简单存储库,但在理解如何处理外键时遇到了瓶颈...... 如果我有一个产品对象包含 int ID; string name; string description;
我正在为一个重要项目寻找新的 ORM,我习惯于使用 ActiveRecord 进行 nHibernate,并且我已经对 EF4、性能和崩溃的 GUI 有了非常糟糕的体验。 所以在网上搜索我找到了 Su
好的, 我热切地等待 subsonic 3.0 的发布以用作我的低级数据层,现在它已经发布了。我目前正在使用 ActiveRecord 模板(尝试了存储库和高级模板)并且我有一个巨大的请求和几个问题:
有没有办法用 subsonic 执行自连接? 最佳答案 subsonic 上曾经有过关于这个的讨论,现在已经死了。它基本上说: it is [not] possible with SqlQuery y
运行最新版本的 SubSonic (3.0.0.3)。检索单个记录、更改一个字段并调用 .Save 会导致以下代码中的空引用异常: 公共(public)无效更新(IDataProvider 提供者){
我正在尝试使用 Subsonic3 中的 SimpleRepository 功能 - 首先,我必须对 RobC 表示衷心的感谢 - Subsonic 真的很棒,我迫不及待地想看到 SimpleRepo
我正在玩弄 Subsonic 3.0 SimpleRepository 并尝试使用一个 linq 查询获取菜单和菜单项,但菜单项始终为空 菜单 public class Menu { publ
这里有什么问题?这就是我在 Subsonic 2 CodingHorror 示例中发现的方法,但不起作用:( new CodingHorror().Execute("SELECT * FROM pro
我有一个带有主键 (Identity) 和几个 varchar 类型列的简单表。我尝试使用以下语法删除/销毁具有给定主键的记录: SS3Test.DAL.TestClass.Destroy(x =>
有什么区别:.Save(); 。添加();.Update(): 最佳答案 您没有提及您正在使用哪些模板(我将假设 ActiveRecord),但作为一般规则: 如果对象保存将插入IsNew==true
Subsonic 3.0 的新手,想知道如何对对象属性执行 LIKE 运算符。给定以下类(class),我将如何使用 Subsonic 3.0 执行 LIKE 操作。例如 SELECT * FROM
我遇到了以下情况,我有 2 个表(产品和类别)。 Products 表中的字段 CategoryID 具有 Categories 表的外键。 现在,对于我的 CMS 中的数据表,我正在寻找一种方法来根
有人可以帮忙吗?当我尝试生成我的 Structs.cs 文件时,该过程失败并出现错误,因为 MySQL 提供程序未返回 SchemaName。 "错误 3 运行转换:System.ArgumentNu
我最近尝试将一个由 SubSonic 2.2 生成 DAL 的 .net 2.0 项目升级到 Visual Studio 2010 下的 .NET 4.0。 项目转换没有错误,但现在我在尝试启动它时收
我是一名优秀的程序员,十分优秀!