我用。net 做了一个页面  这个页面 只有添加数据 我正常访问页面 添加数据是没有问题的 可是 当我 先用浏览器访问这个页面 然后 过一段时间 再 点击添加按钮 就报错 这是什么问题呢????

解决方案 »

  1.   

    可能:
    1.页面有Session变量,等你提交数据时候,Session变量已经取不到值了
    2.数据库链接也有可能超时,每个数据库都有具体什么错误,你得贴出错误提示才能分析是什么原因
      

  2.   

    如果是session问题的话,可以每隔一段时间(session没有过期之前)向服务器发送一个无用请求
      

  3.   


    “/”应用程序中的服务器错误。
    验证视图状态 MAC 失败。如果此应用程序由网络场或群集承载,请确保 <machineKey> 配置指定了相同的 validationKey 和验证算法。不能在群集中使用 AutoGenerate。
    说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。异常详细信息: System.Web.HttpException: 验证视图状态 MAC 失败。如果此应用程序由网络场或群集承载,请确保 <machineKey> 配置指定了相同的 validationKey 和验证算法。不能在群集中使用 AutoGenerate。源错误:[没有相关的源行]
    源文件: c:\windows\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files\root\ba284f07\161f9bff\App_Web_yq52nhdw.0.cs    行: 0
      

  4.   

    堆栈跟踪:[ViewStateException: 无效的视图状态。
    Client IP: 113.128.93.195
    Port: 3097
    User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; zh-CN; rv:1.9.2.17) Gecko/20110420 Firefox/3.6.17 GTB7.1
    ViewState: /wEPDwULLTIwODExMTY5NzgPZBYCAgMPZBYQAhcPPCsADQBkAkUPEA8WAh4LXyFEYXRhQm91bmRnZBAVBwnmlK/ku5jlrp0G572R5bqXC3BheXBhbF9qYWNrCnBheXBhbF/liJgL5oub5ZWGXzk3NzcL5oub6KGMXzY3MzcG5YW25a6DFQcBMQEyATMBNAE1ATYBNxQrAwdnZ2dnZ2dnZGQCSw8QDxYCHwBnZBAVBwnmlK/ku5jlrp0G572R5bqXC3BheXBhbF9qYWNrCnBheXBhbF/liJgL5oub5ZWGXzk3NzcL5oub6KGMXzY3MzcG5YW25a6DFQcBMQEyATMBNAE1ATYBNxQrAwdnZ2dnZ2dnZGQCUQ8QDxYCHwBnZBAVBwnmlK/ku5jlrp0G572R5bqXC3BheXBhbF9qYWNrCnBheXBhbF/liJgL5oub5ZWGXzk3NzcL5oub6KGMXzY3MzcG5YW25a6DFQcBMQEyATMBNAE1ATYBNxQrAwdnZ2dnZ2dnZGQCUw8QDxYCHwBnZBAVBwnmlK/ku5jlrp0G572R5bqXC3BheXBhbF9qYWNrCnBheXBhbF/liJgL5oub5ZWGXzk3NzcL5oub6KGMXzY3MzcG5YW25a6DFQcBMQEyATMBNAE1ATYBNxQrAwdnZ2dnZ2dnZGQCXw8QDxYCHwBnZBAVEQzmlLblhaXov5DotLkP5pS25YWl5ouG5YiG6LS5D+aUtuWFpemHjeWMhei0uQ/mlLblhaXlkIjlubbotLkP5pS25YWl6YCA6LSn6LS5DOaUr+WHuui/kOi0uQzmlK/lh7rkv53pmakP5pSv5Ye65ouG5YiG6LS5D+aUr+...][HttpException (0x80004005): 验证视图状态 MAC 失败。如果此应用程序由网络场或群集承载,请确保 <machineKey> 配置指定了相同的 validationKey 和验证算法。不能在群集中使用 AutoGenerate。]
       System.Web.UI.ViewStateException.ThrowError(Exception inner, String persistedState, String errorPageMessage, Boolean macValidationError) +106
       System.Web.UI.ViewStateException.ThrowMacValidationError(Exception inner, String persistedState) +14
       System.Web.UI.ObjectStateFormatter.Deserialize(String inputString) +237
       System.Web.UI.ObjectStateFormatter.System.Web.UI.IStateFormatter.Deserialize(String serializedState) +4
       System.Web.UI.Util.DeserializeWithAssert(IStateFormatter formatter, String serializedState) +37
       System.Web.UI.HiddenFieldPageStatePersister.Load() +207
       System.Web.UI.Page.LoadPageStateFromPersistenceMedium() +105
       System.Web.UI.Page.LoadAllState() +43
       System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +6785
       System.Web.UI.Page.ProcessRequest(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +242
       System.Web.UI.Page.ProcessRequest() +80
       System.Web.UI.Page.ProcessRequestWithNoAssert(HttpContext context) +21
       System.Web.UI.Page.ProcessRequest(HttpContext context) +49
       ASP.admin2010_waybill_aspx.ProcessRequest(HttpContext context) in c:\windows\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files\root\ba284f07\161f9bff\App_Web_yq52nhdw.0.cs:0
       System.Web.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() +181
       System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) +75
      

  5.   

    http://chunleichinaren.blog.163.com/blog/static/184849422008929111656843/
    看看
      

  6.   

    可以在使用session之前,先判断session有没有过期(即存不存在session),防止出现不友好的界面
      

  7.   


    放在空享服务器上的吧网上搜machineKey
      

  8.   

    配置 WEB.CONFIG   
    <?xml version="1.0"?>
    <configuration>
    <configSections>
    <sectionGroup name="system.web.extensions" type="System.Web.Configuration.SystemWebExtensionsSectionGroup, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35">
    <sectionGroup name="scripting" type="System.Web.Configuration.ScriptingSectionGroup, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35">
    <section name="scriptResourceHandler" type="System.Web.Configuration.ScriptingScriptResourceHandlerSection, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" requirePermission="false" allowDefinition="MachineToApplication"/>
    <sectionGroup name="webServices" type="System.Web.Configuration.ScriptingWebServicesSectionGroup, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35">
    <section name="jsonSerialization" type="System.Web.Configuration.ScriptingJsonSerializationSection, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" requirePermission="false" allowDefinition="Everywhere"/>
    <section name="profileService" type="System.Web.Configuration.ScriptingProfileServiceSection, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" requirePermission="false" allowDefinition="MachineToApplication"/>
    <section name="authenticationService" type="System.Web.Configuration.ScriptingAuthenticationServiceSection, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" requirePermission="false" allowDefinition="MachineToApplication"/>
    </sectionGroup>
    </sectionGroup>
    </sectionGroup>
    </configSections>
    <system.web>
    <customErrors mode="Off"/>
    <pages validateRequest="false" enableViewState="true"><controls>
    <add tagPrefix="asp" namespace="System.Web.UI" assembly="System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
    </controls>
    </pages>
    <!--
      Set compilation debug="true" to insert debugging
      symbols into the compiled page. Because this
      affects performance, set this value to true only
      during development.
      -->
    <compilation debug="true">
    <assemblies>
    <add assembly="System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
    <add assembly="System.Design, Version=2.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A"/></assemblies>
    </compilation>
    <httpHandlers>
    <remove verb="*" path="*.asmx"/>
    <add verb="*" path="*.asmx" validate="false" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
    <add verb="*" path="*_AppService.axd" validate="false" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
    <add verb="GET,HEAD" path="ScriptResource.axd" type="System.Web.Handlers.ScriptResourceHandler, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" validate="false"/>
    </httpHandlers>
    <httpModules>
    <add name="ScriptModule" type="System.Web.Handlers.ScriptModule, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
    </httpModules>
    <machineKey validationKey="3FF1E929BC0534950B0920A7B59FA698BD02DFE8" decryptionKey="280450BB36319B474C996B506A95AEDF9B51211B1D2B7A77" decryption="3DES" validation="SHA1"/>
    </system.web>
    <system.web.extensions>
    <scripting>
    <webServices>
    <!-- Uncomment this line to customize maxJsonLength and add a custom converter -->
    <!--
      <jsonSerialization maxJsonLength="500">
      <converters>
      <add name="ConvertMe" type="Acme.SubAcme.ConvertMeTypeConverter"/>
      </converters>
      </jsonSerialization>
      -->
    <!-- Uncomment this line to enable the authentication service. Include requireSSL="true" if appropriate. -->
    <!--
      <authenticationService enabled="true" requireSSL = "true|false"/>
      -->
    <!-- Uncomment these lines to enable the profile service. To allow profile properties to be retrieved
      and modified in ASP.NET AJAX applications, you need to add each property name to the readAccessProperties and
      writeAccessProperties attributes. -->
    <!--
      <profileService enabled="true"
      readAccessProperties="propertyname1,propertyname2"
      writeAccessProperties="propertyname1,propertyname2" />
      -->
    </webServices>
    <!--
      <scriptResourceHandler enableCompression="true" enableCaching="true" />
      -->
    </scripting>
    </system.web.extensions>
    <system.webServer>
    <validation validateIntegratedModeConfiguration="false"/>
    <modules>
    <add name="ScriptModule" preCondition="integratedMode" type="System.Web.Handlers.ScriptModule, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
    </modules>
    <handlers>
    <remove name="WebServiceHandlerFactory-Integrated"/>
    <add name="ScriptHandlerFactory" verb="*" path="*.asmx" preCondition="integratedMode" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
    <add name="ScriptHandlerFactoryAppServices" verb="*" path="*_AppService.axd" preCondition="integratedMode" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
    <add name="ScriptResource" preCondition="integratedMode" verb="GET,HEAD" path="ScriptResource.axd" type="System.Web.Handlers.ScriptResourceHandler, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
    </handlers>
    </system.webServer></configuration>
      

  9.   


      string validationKey = CreateKey(20);    string decryptionKey = CreateKey(24);    protected string CreateKey(int len)
        {        byte[] bytes = new byte[len];        new RNGCryptoServiceProvider().GetBytes(bytes);        StringBuilder sb = new StringBuilder();        for (int i = 0; i < bytes.Length; i++)
            {            sb.Append(string.Format("{0:X2}", bytes[i]));        }        return sb.ToString();    }用上面的代码生成两个值 写到下面里去就好了 
    <machineKey validationKey="*****" decryptionKey="******" decryption="3DES" validation="SHA1"/>