asp.net问题集
1.session丢失问题
a. 如果服务器端是多台服务器,采用负载均衡方案,session就有问题了。因为不能保证每次请求都由同一台服务器处理,这样就会出现session丢失的情况。因此在这种情况下,还是应该使用cookie,这在大型网站上很常见。
b. asp.net和asp 也不存在session共享问题。
c. 应用程序在不同的虚拟站点
d. iframe: 解决办法:Response.AddHeader("P3P","CP=CAO PSA OUR");
b. asp.net和asp 也不存在session共享问题。
c. 应用程序在不同的虚拟站点
d. iframe: 解决办法:Response.AddHeader("P3P","CP=CAO PSA OUR");
2.F5会重新执行上一次执行的事件
3.连续点击一个按钮事。webform会被提交多次
4.ViewState在有多台机器负载均衡时可能丢失。
5。后退(backspace)时页面失效
6.特殊符号的过滤问题
编辑更新一条链接时标题输入了"{入围]水·绿".其中含有"{"标记!
程序中输出html代码时使用了 String.Format("******{0}","{入围]水·绿"); 标题中的"{",和string.Formart中的"{}"标记出现匹配冲突.
7.对于不能调试,不能加端点,加了断点但错行的处理。原因是项目的dll版本不统一。
a.删除bin
b.关闭ide
c.在iis中删除虚拟目录的应用程序配置。
d.重启iis
8.A potentially dangerous Request.Form value was detected from the client
(txtTest="<b>").
由于在.net中,Request时出现有HTML或Javascript等字符串时,系统会认为是危险性值。立马报错。
解决方案一:
在.aspx文件头中加入这句:
<%@ Page validateRequest="false" %>
解决方案二:
修改web.config文件:
<configuration>
<system.web>
<pages validateRequest="false" />
</system.web>
</configuration>
因为validateRequest默认值为true。只要设为false即可。
由于在.net中,Request时出现有HTML或Javascript等字符串时,系统会认为是危险性值。立马报错。
解决方案一:
在.aspx文件头中加入这句:
<%@ Page validateRequest="false" %>
解决方案二:
修改web.config文件:
<configuration>
<system.web>
<pages validateRequest="false" />
</system.web>
</configuration>
因为validateRequest默认值为true。只要设为false即可。
9.验证视图状态 MAC 失败。如果此应用程序由网络场或群集承载,请确保 配置指定了相同的 validationKey 和验证算法。不能在群集中使用 AutoGenerate
在出错页面添加:
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="dongtai.aspx.cs" Inherits="dongtai" EnableViewStateMac="false" EnableEventValidation="false" ViewStateEncryptionMode="Never"%>
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="dongtai.aspx.cs" Inherits="dongtai" EnableViewStateMac="false" EnableEventValidation="false" ViewStateEncryptionMode="Never"%>
10.调试附加到进程出错
点击 "调试"—〉"开始:" 试图运行项目时出错;无法启动调试绑定句柄无效。调试—〉附加到进程:无法连接到名为“FGQ”的“Microsoft Visual Studio远程调试监视器”。绑定句柄无效工具—〉附加到进程:无法连接到名为“FGQ”的“Microsoft Visual Studio远程调试监视器”。绑定句柄无效
原因是:Terminal Services服务被禁止了,进控制面版把这个服务设为自动,重启系统就行了。
原因是:Terminal Services服务被禁止了,进控制面版把这个服务设为自动,重启系统就行了。
11.vs2003,安装程序检测到另一个程序要求计算机重新启动
今天一个朋友在新买的Dell640M上安装Visual Studio .Net 2003,结果出现提示:“安装程序检测到另一个程序要求计算机重新启动.必须重新启动计算机后才能安装visual studio.net系统必备.系统重新启动后,你需要重新启动安装程序.单击"确定"重新启动,单击"取消"退出安装程序。”,折腾了一下午,重新启动了N次计算机,死活安装不上,而且找不到源头。怎么办?Google一下吧,得到答案如下: 在注册表删除HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\pendingfilerenameoperations 原来是朋友之前安装Acrobat后立即联机更新,更新程序要求重新启动后继续安装,中止了它,结果就成了上面这个样子。 特此提醒需要在同一台机器上使用Acrobat和Visual Studio .Net 2003的朋友注意。