InvalidOperationException После установки Visual Studio 11 Beta - PullRequest
0 голосов
/ 14 марта 2012

Я недавно установил Visual Studio 11 Beta с .Net Framework 4.5 на моем рабочем компьютере (но оставил Visual Studio 2010 бок о бок).У меня это работало нормально в течение нескольких дней, но затем он начал выдавать InvalidOperationException в этом разделе кода:

ItemDB itemDB = new ItemDB();
ItemDetails item = itemDB.GetItem((int)Session["itemId"]);
string code = item.Code;
Control html = ParseControl(code);
placeholderPage.Controls.Add(html);

Исключение происходит в строке, где я ParseControl, в строковом коде у меня обычный HTML,Самое странное, что этот код прекрасно работал до того, как я установил новую Visual Studio, и он все еще работает на компьютере колледжа, где у него VS2010 на .NET Framework 4.

После исключения он показывает мне это сообщение: Cannot instantiate type 'TracedLiteralControl' because there is no public parameterless constructor.

Ответы [ 2 ]

7 голосов
/ 18 апреля 2012

У меня была такая же досадная проблема, но при использовании Page.ParseControl.Вот подробности: System.InvalidOperationException возникла Сообщение: Не удалось создать экземпляр типа 'TracedLiteralControl', поскольку нет открытого конструктора без параметров.

Затем, глядя на CallStack, я обнаружил следующую интересную строку: Microsoft.VisualStudio.Web.PageInspector.Loader.dll! Microsoft.VisualStudio.Web.Runtime.WebForms.TracedLiteralControlBuilder.BuildObject () + 0x2f байт

Похоже, что для новой функции PageInspector VS 11 подключает сборку во время выполнения моего веб-приложения.Я точно не добавил эту сборку, поэтому очевидное место для поиска было в конфигурации .NET Framework и, в частности, в web.config

. В моем случае файл находится в C: \ Windows \Microsoft.NET \ Framework \ v4.0.30319 \ Config \ web.config и "Bingo" - в строке 88 я нашел следующее:

<add assembly="Microsoft.VisualStudio.Web.PageInspector.Loader, Version=1.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />

Я прокомментировал строку, и мои приложения снова работают нормально.

Надеюсь, это поможет, Велио

3 голосов
/ 29 ноября 2012

Если у вас есть проблемы с инспектором страницы, вы можете отключить его в своем собственном web.config:

<compilation defaultLanguage="c#" debug="true" targetFramework="4.0">
  <assemblies>
    <remove assembly="Microsoft.VisualStudio.Web.PageInspector.Loader, Version=1.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
  </assemblies>
</compilation>
...