c# - ASP.NET MVC 3 - 操作可能会破坏运行时的稳定性

标签 c# .net asp.net-mvc-3 verificationexception

我有一个 MVC3.0 (.Net 4.0) 应用程序,它在 Windows 7 开发机器(使用 VS2010)上运行得很好。同样的应用程序也可以在其中一台装有 IIS 7 的 Windows 8 服务器上正常运行。

但是,同一个应用程序在其他带有 IIS7 的 Windows 8 服务器上抛出以下异常。

操作可能会破坏运行时的稳定性。

Stack Trace:

[VerificationException: Operation could destabilize the runtime.] System.Web.Mvc.MvcHandler.System.Web.IHttpAsyncHandler.BeginProcessRequest(HttpContext context, AsyncCallback cb, Object extraData) System.Web.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously)

拜托,有人可以帮助我了解导致此问题的原因吗?

是 .NET Framework 4.0 吗? (我验证了两台服务器都有 .Net 已安装 Framework 4.0)

是IIS和MVC 3.0的问题吗? (需要单独安装MVC 3.0才能运行IIS吗?)

我们如何设置 Web 应用程序以在 IIS 7 中以完全信任的方式运行?

或者完全是别的东西(尝试用 spnet_regiis.exe -ir 注册 iis 也没有帮助)

是否有必要安装这个http://www.microsoft.com/en-us/download/details.aspx?id=1491在网络服务器上?

我们将不胜感激。

最佳答案

VerificationException当 JIT 编译器在程序集中发现不匹配的类型信息或无​​效的 IL 指令时抛出。例如,调用者和被调用方法之间的方法签名(或返回类型)不匹配(当方法的签名被更改并且相关程序集未重新编译时)。

要解决此问题,您可以使用 peverify检查程序集:

peverify MyCompany.WebAppMainAssembly.dll

它将告诉哪个成员引起了冲突。类似于 found <method sig>, expected <expected signature> .现在您知道是什么程序集导致了问题。如有必要,请在 GAC 中重新安装它。 MVC、EF、Unity都有msi安装器,还是手动安装...

顺便说一句,运行 peverify打开 Visual Studio Command Prompt或在 C:\Program Files (x86)\Microsoft SDKs\Windows\<winver>\Bin 中查找(这个路径可以稍微改变)。

关于c# - ASP.NET MVC 3 - 操作可能会破坏运行时的稳定性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12157997/

相关文章:

c# - 实例化要在类库中使用的委托(delegate)方法

.net - 将 MySQL 查询添加到 PHPMYAdmin

visual-studio-2010 - 命名空间 'Model'的类型在命名空间中不存在

asp.net-mvc-3 - ASP.NET MVC3 领域

c# - 输入数据库时​​在文本框中拆分文本

c# - Base R 库未在 VS 中加载

.net - log4net - 如何仅记录来自特定 namespace 的错误

javascript - 防止加载无限循环

c# - 处理 TypedDataset 中的 Null

c# - 如何在 sql server 中加密数据并在 .net 应用程序中解密