Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/wcf/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# ArgumentOutOfRangeException,2012服务器上的IIS express_C#_Asp.net Mvc - Fatal编程技术网

C# ArgumentOutOfRangeException,2012服务器上的IIS express

C# ArgumentOutOfRangeException,2012服务器上的IIS express,c#,asp.net-mvc,C#,Asp.net Mvc,我的所有控制器操作都呈现良好,只有一个除外 我已经找到了其他与IIS express相关的解决方案,但是它正在服务器2012上运行 以下是控制器操作: public ActionResult Index() { try { var viewModels = GetHostInfoViewModelList(); return View(viewModels); } catch

我的所有控制器操作都呈现良好,只有一个除外

我已经找到了其他与IIS express相关的解决方案,但是它正在服务器2012上运行

以下是控制器操作:

public ActionResult Index()
    {

        try
        {
            var viewModels = GetHostInfoViewModelList();
            return View(viewModels);
        }
        catch (Exception ex)
        {
            ex.ReportError();
            return new HttpStatusCodeResult(404,$"{ex.Message}|{ex.InnerException}");

        }

    }
以下是GetHostInfoViewModelList:

  public IEnumerable<ViewModelHostInfo> GetHostInfoViewModelList()
    {
        using (var db = new WINCMUEntities())
        {
            try
            {
                //join host info with sleep status
                var sleepRecords = db.SleepTrackings.ToList();
                var hostInfo = db.WINCMU_HostInfo.ToList();
                var viewModels = new List<ViewModelHostInfo>();
                hostInfo.ForEach(x =>
                {
                    viewModels.Add(new ViewModelHostInfo()
                    {
                        HostName = x.HostName ?? "Not Found",
                        Id = x.ID,
                        newsystem = x.newsystem,
                        Zone = x.Zone ?? "Not Found",
                        IsSleeping = sleepRecords.FirstOrDefault(s => s.HostName.ToLower() == x.HostName.ToLower())
                                         ?.IsCurrentlySleeping ?? false,
                        IP_address = x.IP_address ?? "Not Found",
                        ReportingArea = x.ReportingArea ?? "Not Found",
                        agent_active = x.agent_active,
                        date_added = x.date_added,
                        is_agent = x.is_agent
                    });
                });

                return viewModels;
            }
            catch (Exception ex)
            {
                ex.ReportError();
                throw;
                //return new List<ViewModelHostInfo>();
            }
        }
    }
public IEnumerable GetHostInfoViewModelList()
{
使用(var db=new wincmueentities())
{
尝试
{
//加入具有睡眠状态的主机信息
var sleepRecords=db.SleepTrackings.ToList();
var hostInfo=db.WINCMU_hostInfo.ToList();
var viewModels=新列表();
hostInfo.ForEach(x=>
{
添加(新的ViewModelHostInfo()
{
HostName=x.HostName??“未找到”,
Id=x.Id,
newsystem=x.newsystem,
区域=x。区域??“未找到”,
IsSleeping=sleepRecords.FirstOrDefault(s=>s.HostName.ToLower()==x.HostName.ToLower())
?当前正在睡觉?错误,
IP_地址=x.IP_地址??“未找到”,
ReportingArea=x.ReportingArea???“未找到”,
agent\u active=x.agent\u active,
添加日期=x.添加日期,
is_agent=x.is_agent
});
});
返回视图模型;
}
捕获(例外情况除外)
{
例如,ReportError();
投掷;
//返回新列表();
}
}
}
以下是完整的错误文本:

[ArgumentOutOfRangeException:指定的参数超出有效值的范围。 参数名称:值] System.Web.HttpResponse.set_StatusDescription(字符串值)+4538824 System.Web.Mvc.HttpStatusCodeResult.ExecuteResult(ControllerContext上下文)+109 System.Web.Mvc.ControllerActionInvoker.InvokeActionResultFilterRecursive(IList
1过滤器、Int32过滤器索引、ResultExecutingContext预文本、ControllerContext ControllerContext、ActionResult ActionResult)+88
System.Web.Mvc.ControllerActionInvoker.InvokeActionResultFilterRecursive(IList
1过滤器、Int32过滤器索引、ResultExecutingContext预文本、ControllerContext ControllerContext、ActionResult ActionResult)+775 System.Web.Mvc.ControllerActionInvoker.InvokeActionResultWithFilters(ControllerContext ControllerContext,IList
1过滤器,ActionResult ActionResult)+81
System.Web.Mvc.Async.c__显示类3_1.b_5(IAsyncResult asyncResult)+188
System.Web.Mvc.Async.AsyncControllerActionInvoker.EndInvokeAction(IAsyncResult asyncResult)+38
System.Web.Mvc.c.b__152_1(IAsyncResult asyncResult,ExecuteCorerate innerState)+26
System.Web.Mvc.Async.WrappedAsyncVoid
1.CallEndDelegate(IAsyncResult asyncResult)+68 System.Web.Mvc.Controller.EndExecuteCore(IAsyncResult asyncResult)+52 System.Web.Mvc.Async.WrappedAsyncVoid
1.CallEndDelegate(IAsyncResult asyncResult)+39
System.Web.Mvc.Controller.EndExecute(IAsyncResult asyncResult)+38
System.Web.Mvc.c.b_20_1(IAsyncResult asyncResult,ProcessRequestState innerState)+40
System.Web.Mvc.Async.WrappedAsyncVoid
1.CallEndDelegate(IAsyncResult asyncResult)+68 System.Web.Mvc.MvcHandler.EndProcessRequest(IAsyncResult asyncResult)+38 System.Web.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute()+602 System.Web.HttpApplication.executesteppl(IExecutionStep步骤)+195 System.Web.HttpApplication.ExecuteStep(IExecutionStep步骤,布尔值&同步完成)+128


错误消息指出,在设置响应状态时发生异常:

[ArgumentOutOfRangeException:指定的参数超出有效值的范围。参数名称:value]
System.Web.HttpResponse.set\u StatusDescription
(字符串值)+4538824

您的代码未设置404状态结果的标准描述:

return new HttpStatusCodeResult(404,$"{ex.Message}|{ex.InnerException}");
将此更改为:

return new HttpStatusCodeResult(404,"Not Found");

您可以省略说明,但如果设置了说明,则说明必须与状态代码相匹配。

这是自己造成的


GetHostInfoViewModelList引发了异常

GetHostInfoViewModelList()的源代码是什么?你的问题可能就在那里。你有没有尝试过单步检查你的代码,看看它到底掉到哪里了?谢谢你!这个方法有一个throw关键字,它破坏了一切。