Dej*_*ric 0 c# visual-studio .net-4.5 visual-studio-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);
Run Code Online (Sandbox Code Playgroud)
异常发生在我的行中ParseControl,在字符串代码中我有常规的html.最奇怪的是,在我安装新的Visual Studio之前,这段代码工作得很好,它仍适用于在.NET Framework 4上安装VS2010的大学机器.
异常后,它显示了这条消息: Cannot instantiate type 'TracedLiteralControl' because there is no public parameterless constructor.
我有同样恼人的问题,但在使用Page.ParseControl时.以下是详细信息:发生System.InvalidOperationException消息:无法实例化类型"TracedLiteralControl",因为没有公共无参数构造函数.
然后看调用堆栈,我发现以下有趣的线!Microsoft.VisualStudio.Web.PageInspector.Loader.dll Microsoft.VisualStudio.Web.Runtime.WebForms.TracedLiteralControlBuilder.BuildObject()+值为0x2F字节
看起来,为了新的PageInspector功能,VS 11在我的Web应用程序运行时中插入一个程序集.我没有确定添加了程序集,所以显而易见的地方是在.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" />
Run Code Online (Sandbox Code Playgroud)
我评论了这一行,我的应用程序再次正常运行.
希望有所帮助,Velio
| 归档时间: |
|
| 查看次数: |
1379 次 |
| 最近记录: |