出于某种原因,当我尝试AccountController
在我的 MVC4 应用程序中发布到其中一个 ActionMethods 时,它告诉我它无法加载System.Web.Mvc, Version=1.0.0.0
或其依赖项之一。我不确定为什么在我实际使用运行时版本 4 时它会尝试加载此程序集。
我怀疑其中一个引用的程序集可能会导致此问题,但我不确定。我的主要嫌疑人是DotNetOpenAuth.Core
因为以下痕迹:
=== 预绑定状态信息 === LOG: User = NT AUTHORITY\NETWORK SERVICE LOG: DisplayName = System.Web.Mvc, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35 (Full-specified) LOG: Appbase = file:///C:/tfs/AMS/Main/AMS/AuthServer/ LOG: Initial PrivatePath = C:\tfs\AMS\Main\AMS\AuthServer\bin 调用程序集:DotNetOpenAuth.Core,版本=4.2。 0.0,文化=中性,PublicKeyToken=2780ccd10d57b246。=== LOG:此绑定在默认加载上下文中开始。LOG:使用应用程序配置文件:C:\tfs\AMS\Main\AMS\AuthServer\web.config LOG:使用主机配置文件:C:\Windows\Microsoft.NET\Framework64\v4.0.30319\aspnet.config LOG:使用 C:\Windows\Microsoft.NET\Framework64\v4.0.30319\config\machine.config 中的机器配置文件。LOG:后策略参考:System.Web.Mvc,Version=1.0.0.0,Culture=neutral,PublicKeyToken=31bf3856ad364e35 日志:尝试下载新 URL 文件:///C:/Windows/Microsoft.NET/Framework64/v4.0.30319/Temporary ASP.NET Files/root/d0b0b808/59620299/System.Web。 Mvc.DLL。日志:尝试下载新 URL 文件:///C:/Windows/Microsoft.NET/Framework64/v4.0.30319/Temporary ASP.NET Files/root/d0b0b808/59620299/System.Web.Mvc/System.Web.Mvc .DLL。日志:正在尝试下载新的 URL 文件:///C:/tfs/AMS/Main/AMS/AuthServer/bin/System.Web.Mvc.DLL。警告:比较程序集名称导致不匹配:主要版本错误:无法完成程序集设置(hr = 0x80131040)。探测终止。Web.Mvc.DLL。日志:尝试下载新 URL 文件:///C:/Windows/Microsoft.NET/Framework64/v4.0.30319/Temporary ASP.NET Files/root/d0b0b808/59620299/System.Web.Mvc/System.Web.Mvc .DLL。日志:正在尝试下载新的 URL 文件:///C:/tfs/AMS/Main/AMS/AuthServer/bin/System.Web.Mvc.DLL。警告:比较程序集名称导致不匹配:主要版本错误:无法完成程序集设置(hr = 0x80131040)。探测终止。Web.Mvc.DLL。日志:尝试下载新 URL 文件:///C:/Windows/Microsoft.NET/Framework64/v4.0.30319/Temporary ASP.NET Files/root/d0b0b808/59620299/System.Web.Mvc/System.Web.Mvc .DLL。日志:正在尝试下载新的 URL 文件:///C:/tfs/AMS/Main/AMS/AuthServer/bin/System.Web.Mvc.DLL。警告:比较程序集名称导致不匹配:主要版本错误:无法完成程序集设置(hr = 0x80131040)。探测终止。未能完成程序集设置 (hr = 0x80131040)。探测终止。未能完成程序集设置 (hr = 0x80131040)。探测终止。
当我尝试发布到以下方法时发生异常:
[HttpPost]
public ActionResult Login(String username, String password)
{
var request = Session[SESSION_KEY] as EndUserAuthorizationRequest;
if (request != null)
{
Guid siteId = Guid.Parse(request.ClientIdentifier);
Boolean isAuthenticated = this._identityProviderManager.Authenticate(siteId, "FA", username, password);
if (isAuthenticated)
{
var serviceHost = new AuthorizationServerHost();
var authorizationServer = new DotNetOpenAuth.OAuth2.AuthorizationServer(serviceHost);
var approvalMessage = authorizationServer.PrepareApproveAuthorizationRequest(request, username, request.Scope);
return authorizationServer.Channel.PrepareResponse(approvalMessage).AsActionResult();
}
}
return View();
}
有任何想法吗?