请教几个问题,谢谢!

talentmykaka 2009-01-15 06:34:49
以前一直是做WINFORM的,最近用c# 开发了一个类似于进销存的WEB软件,就2个问题一直困扰着我.
1.我用Session传递一些参数,但WEB中要是长时间不操作,就会断开与服务器的连接.经常报错,说找不到参数等等这类问题.有什么好的方法解决这样的问题?
2.我用超连接传输多参数时,有些低版本的IE不支持,是不是这样的情况?比如: admin.aspx?id=10001&name=张三 这样的超链接在IE7 中我使用没有任何问题,但在IE6 或IE5 中使用问题就来了,有的时候打开是正常的,有的时候就不正常,参数取出来的是乱码.难道低版本的IE不能使用这样的参数传递么?
3.如何用一个按钮打开新的一个页面?我查了一些资料,看上去感觉使用很别扭,用的大多数是WINDWOSW,OPEN这样的JS命令,但现在好多浏览器都拦截这样的方式.难道就不能用类似于超链接的方法打开一个新窗口?
4.由于才开始使用WEB 开发,不太适应WEB的一些特性和一些技术.这次开发的软件操作性比较强,最多时会有200-300人同时操作,每天产生数据达10万条左右,这样的环境WEB能胜任么?需要用到哪些技术和注意的地方?望大家指导.(数据存储这块设计绝对不会有问题,因为以前一直做WINFROM,这样的项目做过不少,比这个更大的数据量都作过)

由于才使用WEB开发,对WEB的很多特性不太了解,希望大家解答时能给写例子或语句,谢谢,我使用的开发平台是VS 2008 C#,有相关的资料也可以介绍一下,感谢
...全文
141 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
wuyq11 2009-01-15
  • 打赏
  • 举报
回复
<customErrors mode="RemoteOnly" defaultRedirect="error.htm">
<!--
<error statusCode="403" redirect="NoAccess.htm" />
<error statusCode="404" redirect="FileNotFound.htm" />
-->
</customErrors>
wuyq11 2009-01-15
  • 打赏
  • 举报
回复
1.在web.config里customerror设置转向页面。同时判断session[""]是否为null,转页面
2 中文要编码HttpUtility.UrlEncode
3打开页面用resonse.redirect,JS里showdialogue都可以
4要通过存储过程,事务,实现并发操作,同时使用缓存。
jimu8130 2009-01-15
  • 打赏
  • 举报
回复
1.我用Session传递一些参数,但WEB中要是长时间不操作,就会断开与服务器的连接.经常报错,说找不到参数等等这类问题.有什么好的方法解决这样的问题?
session是不稳定的,通常跨页面传值使用url传值即构造url(比如xx.aspx?canshu1=333.....),当然还有其他跨页面传值方法,你可以在网上搜索。

2.我用超连接传输多参数时,有些低版本的IE不支持,是不是这样的情况?比如: admin.aspx?id=10001&name=张三 这样的超链接在IE7 中我使用没有任何问题,但在IE6 或IE5 中使用问题就来了,有的时候打开是正常的,有的时候就不正常,参数取出来的是乱码.难道低版本的IE不能使用这样的参数传递么?
一般来说传递中文是需要进行编码的,编码方法上面都说了,不过你也要注意你本身页面的编码格式是统一为utf-8还是gb2312?

3.如何用一个按钮打开新的一个页面?我查了一些资料,看上去感觉使用很别扭,用的大多数是WINDWOSW,OPEN这样的JS命令,但现在好多浏览器都拦截这样的方式.难道就不能用类似于超链接的方法打开一个新窗口?
模态使用windows.showdialogue,现在已经有人用div来代替这些弹出对话框,你可以去ocean2000.cnblogs.com上面看看,里面对于弹出对话框有介绍。

4.由于才开始使用WEB 开发,不太适应WEB的一些特性和一些技术.这次开发的软件操作性比较强,最多时会有200-300人同时操作,每天产生数据达10万条左右,这样的环境WEB能胜任么?需要用到哪些技术和注意的地方?
上面差不多说了,服务器首先硬件要过硬,其次本身iis注意优化缓冲池,连接等参数,软件本身注意资源的合理使用,同时对页面还有数据进行缓存,数据库方面sql语句要进行优化,给数据表进行索引等。asp.net绝对可以胜任,asp.net官方网站就是用asp.net做的,何况csdn也是一样。
zjybushiren88888 2009-01-15
  • 打赏
  • 举报
回复
1.在web.config中設定session的有效期 或者存在隐藏域
2.传参时可以使用Server.UrlEncode/UrlDecode 或者js等对字符串进行编码
3.浏览器可能不支持javascript
4.优化SQL语句 性能,缓存方面吧
chuxue1342 2009-01-15
  • 打赏
  • 举报
回复
1.我用Session传递一些参数,但WEB中要是长时间不操作,就会断开与服务器的连接.经常报错,说找不到参数等等这类问题.有什么好的方法解决这样的问题?
第一,你可以设置session的时间长一点,第二,你可以在页面加载之后,把session值保留在hiddenfield控件中,重新赋值session一次,应该就不会出现这个问题了!

2.我用超连接传输多参数时,有些低版本的IE不支持,是不是这样的情况?比如: admin.aspx?id=10001&name=张三 这样的超链接在IE7 中我使用没有任何问题,但在IE6 或IE5 中使用问题就来了,有的时候打开是正常的,有的时候就不正常,参数取出来的是乱码.难道低版本的IE不能使用这样的参数传递么?
其它参数应该没问题,中文的注意用Server.UrlEncode()转码,在接受页面用server.UrlDecdoe()还原

3.如何用一个按钮打开新的一个页面?我查了一些资料,看上去感觉使用很别扭,用的大多数是WINDWOSW,OPEN这样的JS命令,但现在好多浏览器都拦截这样的方式.难道就不能用类似于超链接的方法打开一个新窗口?
这个问题是这样的,要不然你可以偿试用linkbutton,或者不要弹出窗口!

4.由于才开始使用WEB 开发,不太适应WEB的一些特性和一些技术.这次开发的软件操作性比较强,最多时会有200-300人同时操作,每天产生数据达10万条左右,这样的环境WEB能胜任么?需要用到哪些技术和注意的地方?望大家指导.(数据存储这块设计绝对不会有问题,因为以前一直做WINFROM,这样的项目做过不少,比这个更大的数据量都作过)
能胜任,主要看数据操作代码怎么写,一般注意迟打开,早回收!sql方面,应该跟你的winform差不多吧!
jiang_jiajia10 2009-01-15
  • 打赏
  • 举报
回复
1.设置超时时间,还有用之前先判断是否为空
2.传递方式有很多种你可以尝试换个思路
3.Response.Redirt("页面") 还有js的winows.open()
4.做Cache
bj890 2009-01-15
  • 打赏
  • 举报
回复
up
supremeholy 2009-01-15
  • 打赏
  • 举报
回复
1.可以把超时时间设置的长一些,在页面中加入对Session值的判断,有值则说明在线,可以继续操作,否则重新登录。
2.对于汉字参数,可以在传递前转换为别的编码,在接收时再转换回来。

/// <summary>
/// 汉字加密
/// </summary>
/// <param name="msg"></param>
/// <returns></returns>
/// <remarks></remarks>
public static string encode(string msg)
{
string rs = "";
byte[] data = System.Text.Encoding.Default.GetBytes(msg);
for (int i = 0; i <= data.Length - 1; i++)
{
string t = Convert.ToString(data[i], 16);
t = ((t.Length == 1 ? "0" + t : t));
t = data[i].ToString("x");
rs = rs + t.ToUpper();
}
return rs;
}

/// <summary>
/// 汉字解密
/// </summary>
/// <param name="msg"></param>
/// <returns></returns>
/// <remarks></remarks>
public static string decode(string msg)
{
string rs = "";
byte[] data = new byte[msg.Length / 2];
for (int i = 0; i <= msg.Length / 2 - 1; i++)
{
data[i] = Convert.ToByte(msg.Substring(i * 2, 2), 16);
}
rs = System.Text.Encoding.Default.GetString(data);
return rs;
}

3.这个问题确实不好搞定,window.open打开会被拦截,而且这种打开页面也耗资源。可以考虑是否可以用超链接打开新页面。
4.期待高手给出解决方案以及好的建议。
Mr-Jee 2009-01-15
  • 打赏
  • 举报
回复
1、我感觉既然是Session会丢失,那么在将Session里的数据作为参数传递前判断下是否存在吧。经常做winform的人很少会在意这一点,但是在webform里就会很计较这点。如果不希望让客户看到这样的情况就判断下吧,如果不存在Session了就跳回登录界面去
Mr-Jee 2009-01-15
  • 打赏
  • 举报
回复
2、尝试传递参数前编码
4、在细节方面把握,例如使用ajax来缓解服务器压力。WEB200-300人同时操作问题应该不大,不过在很多细节上需要LZ去注意,不要太大方了,能省则省。10W条数据说大不大说小不小的,在必要的时候将计算压力丢给客户端来处理。
更多的东西还是等高手来吧
ra2_fang 2009-01-15
  • 打赏
  • 举报
回复
1、session我一般用来保存用户登录信息,不用来传递参数
2、URL中传值是,如果是中文的参数需要先编码,用Server.UrlEncode()
takako_mu 2009-01-15
  • 打赏
  • 举报
回复
1.session確實會出現丟失的情況,你需要在web.config中明確設定session的有效期,比如說60分種。
2.沒碰到,我用的是IE6,是可以的。
3.瀏覽器攔截是因為不支持javascript,可以修改工具欄設置使其支持。
4.等高手解答
ws_hgo 2009-01-15
  • 打赏
  • 举报
回复
关注...

62,269

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧