【问题标题】:InvalidCastException: Unable to cast object of type 'System.Collections.Generic.HashSet`1 ErrorInvalidCastException:无法转换类型为“System.Collections.Generic.HashSet”的对象 1 错误
【发布时间】:2015-09-02 22:58:47
【问题描述】:

切换到 DNX 并升级到 Beta4 后,我们仅在发布到服务器时才会收到以下错误。代码在 VS 中本地运行。我们确保服务器已移除 KRE 并升级了 DNX。有什么建议吗?

错误:

InvalidCastException: Unable to cast object of type 'System.Collections.Generic.HashSet`1[System.String]' to type 'System.Collections.Generic.IReadOnlyCollection`1[System.String]'.

Microsoft.AspNet.Mvc.Rendering.DefaultHtmlGenerator.GetCurrentValues(ViewContext viewContext, ModelExplorer modelExplorer, String expression, Boolean allowMultiple)

查看:

@Html.DropDownListFor(m => m.Criteria.Level, Enum.GetNames(typeof(LogManager.Web.Models.EventLevels)).Select(e => new SelectListItem { Text = e, Value = e }), "", new { @class = "form-control" })

项目.json

"EntityFramework.SqlServer": "7.0.0-beta4",
        "EntityFramework.Commands": "7.0.0-beta4",
        "Microsoft.AspNet.Mvc": "6.0.0-beta4",
        "Microsoft.AspNet.Mvc.TagHelpers": "6.0.0-beta4",
        "Microsoft.AspNet.Authentication.Cookies": "1.0.0-beta4",
        "Microsoft.AspNet.Authentication.Facebook": "1.0.0-beta4",
        "Microsoft.AspNet.Authentication.Google": "1.0.0-beta4",
        "Microsoft.AspNet.Authentication.MicrosoftAccount": "1.0.0-beta4",
        "Microsoft.AspNet.Authentication.Twitter": "1.0.0-beta4",
        "Microsoft.AspNet.Diagnostics": "1.0.0-beta4",
        "Microsoft.AspNet.Diagnostics.Entity": "7.0.0-beta4",
        "Microsoft.AspNet.Identity.EntityFramework": "3.0.0-beta4",
        "Microsoft.AspNet.Server.IIS": "1.0.0-beta4",
        "Microsoft.AspNet.Server.WebListener": "1.0.0-beta4",
        "Microsoft.AspNet.StaticFiles": "1.0.0-beta4",
        "Microsoft.AspNet.Tooling.Razor": "1.0.0-beta4",
        "Microsoft.Framework.ConfigurationModel.Json": "1.0.0-beta4",
        "Microsoft.Framework.ConfigurationModel.UserSecrets": "1.0.0-beta4",
        "Microsoft.Framework.CodeGenerators.Mvc": "1.0.0-beta4",
        "Microsoft.Framework.Logging": "1.0.0-beta4",
        "Microsoft.Framework.Logging.Console": "1.0.0-beta4",
        "Microsoft.Framework.Caching.Distributed": "1.0.0-beta4",
        "Microsoft.AspNet.SignalR.Server": "3.0.0-beta4",
        "Microsoft.Framework.Logging.NLog": "1.0.0-beta4"

DNX 版本为 Beta4。

【问题讨论】:

  • 您使用的是哪个版本的运行时 (DNX),project.json 中有哪些软件包?
  • 嘿维克多,我在上面添加了更多信息。我们在 2 个完全不同的 MVC 6 站点上遇到了同样的问题。似乎我们可能在服务器上丢失了一些东西?我们确保我们在服务器上运行了 dnvm 升级,但这并没有解决它。提前致谢。

标签: asp.net-core asp.net-core-mvc


【解决方案1】:

更新到最新的 DNX,问题已修复(2015-08-24 为 Beta6)。

dnvm upgrade

您还需要通过右键单击项目来更改项目以使用最新的 dnx 版本:

然后,您需要将 project.json 中的所有 beta4 更改为您安装的这个版本(intellisense 似乎不能正确地帮助您,所以 ie.beta6 可能在那里,即使它未显示)。

startup.cs 中需要一些技巧以使一切正常运行。检查未编译的内容并尝试修复那些编译错误。

【讨论】:

    猜你喜欢
    • 2022-08-09
    • 2017-05-05
    • 2022-11-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-12-24
    • 2020-12-02
    • 2011-07-11
    相关资源
    最近更新 更多