Может быть, у вас есть несколько версий MVC в каталоге Bin и на вашем веб-сервере? Мне кажется, что если в ваш AppDomain загружено несколько сборок (разных версий) типов MVC, таких как ActionResult
, а метод AsActionResult
возвратил одну версию, а ваше веб-приложение MVC использовало другую версию, то это может привести к отказу с ToString
. Какую версию ASP.NET MVC вы используете? Метод DotNetOpenAuth AsActionResult
был скомпилирован для версии 1.0 RTM фреймворка MVC. Если вы используете ASP.NET MVC 2 (входит в состав .NET 4.0), возможно, это проблема.
Я полагаю, что если вы добавите этот фрагмент в файл web.config вашего MVC 2, он позволит вам использовать официальную сборку DotNetOpenAuth, поэтому вам не придется создавать свою собственную:
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35" />
<bindingRedirect oldVersion="1.0.0.0" newVersion="2.0.0.0" />
</dependentAssembly>
</assemblyBinding>
</runtime>