Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/31.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# 在执行当前web请求期间生成了未经处理的异常。[HttpAntiForgeryException]_C#_Asp.net_.net_Asp.net Mvc 4_Razor - Fatal编程技术网

C# 在执行当前web请求期间生成了未经处理的异常。[HttpAntiForgeryException]

C# 在执行当前web请求期间生成了未经处理的异常。[HttpAntiForgeryException],c#,asp.net,.net,asp.net-mvc-4,razor,C#,Asp.net,.net,Asp.net Mvc 4,Razor,我有一个C#.NET MVC应用程序,我得到“防伪令牌无法解密”。我不知道错误在哪里,我需要帮助解决这个问题。我正在本地主机上运行这个应用程序。下面是我得到的错误 “/”应用程序中出现服务器错误。 无法解密防伪令牌。如果此应用程序由Web场或群集承载,请确保所有计算机都运行相同版本的ASP.NET网页,并且配置指定了显式加密和验证密钥。无法在群集中使用自动生成。 描述:执行当前web请求期间发生未处理的异常。请查看堆栈跟踪以了解有关错误的更多信息以及错误在代码中的起源。 异常详细信息:Syste

我有一个C#.NET MVC应用程序,我得到“防伪令牌无法解密”。我不知道错误在哪里,我需要帮助解决这个问题。我正在本地主机上运行这个应用程序。下面是我得到的错误

“/”应用程序中出现服务器错误。 无法解密防伪令牌。如果此应用程序由Web场或群集承载,请确保所有计算机都运行相同版本的ASP.NET网页,并且配置指定了显式加密和验证密钥。无法在群集中使用自动生成。 描述:执行当前web请求期间发生未处理的异常。请查看堆栈跟踪以了解有关错误的更多信息以及错误在代码中的起源。 异常详细信息:System.Web.Mvc.HttpAntiForgeryException:无法解密防伪令牌。如果此应用程序由Web场或群集承载,请确保所有计算机都运行相同版本的ASP.NET网页,并且配置指定了显式加密和验证密钥。无法在群集中使用自动生成。 源错误: 在执行当前web请求期间生成了未经处理的异常。有关异常的起源和位置的信息可以使用下面的异常堆栈跟踪来识别。 堆栈跟踪: [HttpAntiForgeryException(0x80004005):无法解密防伪令牌。如果此应用程序由Web场或群集托管,请确保所有计算机都运行相同版本的ASP.NET网页,并且配置指定了显式加密和验证密钥。无法在群集中使用AutoGenerate。] System.Web.Helpers.AntiXsrf.AntiForgeryTokenSerializer.Deserialize(String serializedToken)+337 System.Web.Helpers.AntiXsrf.AntiForgeryTokenStore.GetFormToken(HttpContextBase httpContext)+91 System.Web.Helpers.AntiXsrf.AntiForgeryWorker.Validate(HttpContextBase-httpContext)+44 System.Web.Helpers.AntiForgery.Validate()+92 System.Web.Mvc.ValidateAntiForgeryTokenAttribute.OnAuthorization(AuthorizationContext filterContext)+18 System.Web.Mvc.ControllerActionInvoker.InvokeAuthorizationFilters(ControllerContext ControllerContext,ILST`1过滤器,ActionDescriptor ActionDescriptor)+97 System.Web.Mvc.Async.c__显示类21.b__19(AsyncCallback AsyncCallback,Object asyncState)+743 System.Web.Mvc.Async.WrappedAsyncResult`1.CallBeginDelegate(AsyncCallback回调,对象callbackState)+14 System.Web.Mvc.Async.WrappedAsyncResultBase`1.Begin(异步回调,对象状态,Int32超时)+128 System.Web.Mvc.Async.AsyncControllerActionInvoker.BeginInvokeAction(ControllerContext ControllerContext,String actionName,AsyncCallback回调,对象状态)+343 System.Web.Mvc.Controller.b_uu1c(AsyncCallback-AsyncCallback,Object-asyncState,executeRecreat-innerState)+25 System.Web.Mvc.Async.WrappedAsyncVoid`1.CallBeginDelegate(AsyncCallback回调,对象callbackState)+30 System.Web.Mvc.Async.WrappedAsyncResultBase`1.Begin(异步回调,对象状态,Int32超时)+128 System.Web.Mvc.Controller.BeginExecuteCore(异步回调,对象状态)+465 System.Web.Mvc.Controller.b_uu14(异步回调、异步回调、对象回调、控制器控制器)+18 System.Web.Mvc.Async.WrappedAsyncVoid`1.CallBeginDelegate(AsyncCallback回调,对象callbackState)+20 System.Web.Mvc.Async.WrappedAsyncResultBase`1.Begin(异步回调,对象状态,Int32超时)+128 System.Web.Mvc.Controller.BeginExecute(RequestContext RequestContext,AsyncCallback回调,对象状态)+374 System.Web.Mvc.Controller.System.Web.Mvc.Async.IAsyncController.BeginExecute(RequestContext RequestContext,AsyncCallback回调,对象状态)+16 System.Web.Mvc.MvcHandler.b_uu4(AsyncCallback AsyncCallback,Object asyncState,ProcessRequestState innerState)+52 System.Web.Mvc.Async.WrappedAsyncVoid`1.CallBeginDelegate(AsyncCallback回调,对象callbackState)+30 System.Web.Mvc.Async.WrappedAsyncResultBase`1.Begin(异步回调,对象状态,Int32超时)+128 System.Web.Mvc.MvcHandler.BeginProcessRequest(HttpContextBase httpContext,异步回调,对象状态)+384 System.Web.Mvc.MvcHandler.BeginProcessRequest(HttpContext HttpContext,异步回调,对象状态)+48 System.Web.Mvc.MvcHandler.System.Web.IHTTPassynchandler.BeginProcessRequest(HttpContext上下文,AsyncCallback cb,Object extraData)+16 System.Web.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute()+103 System.Web.HttpApplication.ExecuteStep(IExecutionStep步骤,布尔值&同步完成)+155
当ASP.NET生成令牌时,它会为此使用一些机器密钥。如果您稍后尝试使用另一个密钥解密该令牌,您将得到这种类型的异常

非常奇怪的是,您可以通过运行localhost来实现这一点,因为这通常发生在负载平衡的场景中,例如,当您没有将机器密钥设置为相同时

另一个可能的原因是您在前端以某种方式操纵令牌,或者从另一台机器获取网页,尽管这两种情况似乎都不太可能


无论如何,如果您在负载平衡或类似问题上遇到问题,您需要在所有web.config文件中设置相同的机器密钥。

是否在发布数据的同一台机器上生成页面?是的,我在发布数据的同一台机器上生成页面。