C# 传入的值必须是枚举基或枚举的基础类型,例如Int32。参数名称:value

C# 传入的值必须是枚举基或枚举的基础类型,例如Int32。参数名称:value,c#,asp.net-mvc,iis-7,enums,C#,Asp.net Mvc,Iis 7,Enums,一旦我在IIS7上部署了我的网站,我就会在多个页面上不断出现这个错误。当我在visual studio(即localhost)上运行时,它不会出现 附加的是堆栈跟踪: 错误代码 public ViewResult Index() { ObjectParameter output = new ObjectParameter("OUT_RESULT", DbType.String); ObjectParameter outputdesc = new Ob

一旦我在IIS7上部署了我的网站,我就会在多个页面上不断出现这个错误。当我在visual studio(即localhost)上运行时,它不会出现

附加的是堆栈跟踪:

错误代码

    public ViewResult Index()
    {
       ObjectParameter output = new ObjectParameter("OUT_RESULT", DbType.String);
       ObjectParameter outputdesc = new ObjectParameter("OUT_RESULTDESC", DbType.String);

       var deliveredShipments = db.PODDownload_SearchAllSP(Guid.Parse(Membership.GetUser().ProviderUserKey.ToString()), output, outputdesc);
       ViewBag.IsFirstLoad = true;
       ViewBag.ErrorMessage = "";
       return View(deliveredShipments.ToList());
    } 

此语句导致异常:

    ObjectParameter output = new ObjectParameter("OUT_RESULT", DbType.String);
    ObjectParameter outputdesc = new ObjectParameter("OUT_RESULTDESC", DbType.String);
我将其更改为以下内容:

    ObjectParameter output = new ObjectParameter("OUT_RESULT", "");
    ObjectParameter outputdesc = new ObjectParameter("OUT_RESULTDESC", "");

这就解决了这个问题,尽管我无法理解为什么在部署后而不是在VS2010上时会出现问题。我想这与实体框架版本有关。

您应该显示错误的代码或复制问题的示例代码。@Sayse问题不会在开发环境中复制。我附加了给出错误的代码。您附加了代码,但它没有解释错误发生在哪一行?如果放大到150%,堆栈跟踪上非常小的文本似乎建议调用
toList
。因此,下一个问题是,是否将您调试成
PODDownload\u SearchAllSP
做什么/返回什么?@表示返回视图(deliveredShipments.ToList())的行是导致问题的原因。b但问题是,调试时,我没有收到任何错误,它在本地主机上运行正常,当我将其发布到服务器时,就会显示出来。不仅在这里,还有其他几页。我通过显式地打开
ArgumentException
(在Visual Studio的“异常设置”窗格中检查它),在代码中找到了此错误的根源。这是由于
Enum.GetName
为其
值传递了一个
字符串
,而不是一个数字或枚举值。