如果是升级的话,可以用smartClient智能部署啊!

先占位,再慢慢学习。
@Nina
如果是其它体的话,就不应该是gb2312了,HttpUtility.UrlEncode(nv[i], System.Text.Encoding.GetEncoding("GB2312"));
这里应该是相应的编码代号
我覺得還是不行,因為這里是繁體服務器,Server.UrlEncode只對繁體的文字能正確解析,但是對簡體就亂碼了。
能否有更多的方法,因為還有越南文,韓文等
@Klesh Wong
呵呵是的,我不想因为这样一个功能而把编码改成gb2312的,所以做这一特殊处理
@李.net
原来是这样子...
那楼主应该是用utf8的了,然后需要生成基于gb2312的url...
那这样的处理还是比较合理的.
@Klesh Wong
这个问题的环境不一样,不是同一个项目中的,如果是同一个项目中处理的话,有很多方法可以实现,用server.encode一下最简单不过了。现在现在的问题类似于一个友情链接的URL,这个时候,对方的系统有可能是ASP,也有可能是PHP、JSP都有可能,在这个时候,对方都是直接接收参数的,不会去做任何解析操作,所以我这边得做这样的处理
楼主,统一编码很重要哦,要是一个项目中有多种编码,日后维护起来一定很头痛.如果说客户端传过来的值是utf8 encoding然后读的时候得到乱码则说明楼主的项目应该是gb2312编码的,既然如此,通过web.config指定客户端以gb2312编码来传值是比较妥当的做法.
或者把编码全部统一转换到utf8也是一劳永逸的做法.因为.net本身大量采用utf8编码,现在windows内部使用的也是unicode,理论上来讲,使用utf8反而会比较快,节省了许多内部编码转换的消耗.
不太明白为何楼主会最终选择增加一个函数来处理URL呢?这种处理方式似乎不透明吧?
@lcg22it
这个url有问题,如果想在服务器端得到a的值为&,传递的url应该是:
http://baidu.com?a=%26&b=2
querystring中的键和值都是要经过urlencode后方能传递
escape用了不行
不好意思,可能我刚才没有说清楚,我是在客户端通过Url传值,然后怎样在服务器端得到a的值(
http://baidu.com?a=&&b=2 )
@Longkin
可以试一下escape把中文编码一下
@没有昵称
整个用是不行的,你可以试一下,它会把://这些都编码的,要不然,我干嘛费这么大劲把它分开来
我有个问题哦
就是我把动态生成静态的了,然后再这个静态页面中传递中文参数到动态页面,
好像怎么搞都不行,感觉是页面编码的问题,尝试了一下,没成功。
@lcg22it
如果你想让a等于字符串“&”,必须写a = UrlEncode("&")。
到时候url里面就不是?a=&&b=2这样子了。
自己试试
@lcg22it
如果不是特殊的应用,我觉得用server.urlEncode先编码再接收的时候用server.decode解码就可以了
这个。。。。。
帅哥啊。。。。。整个字符串调用UrlEncode就可以了,没必要一个个参数拆分开来编码再串起来。。。
请问如果URL是这样的如何解决
http://baidu.com?a=&&b=2
如何得到a的值
可以使用Page.RegisterArrayDeclaration(现在已经搬到ClientScriptManager中了)
int[] data = { 1, 2, 3, 5, 7, 11, 13, 17 };
string[] dataStringArray = data.Select(i => i.ToString()).ToArray();
Page.ClientScript.RegisterArrayDeclaration("data", string.Join(", ", dataStringArray));
---------------------
output:
<script type="text/javascript">
//<![CDATA[
var data = new Array(1, 2, 3, 5, 7, 11, 13, 17);
//]]>
</script>
@今日事
确实,在客户端智能识别不到,但在服务器端却可以识别得到
第四种方法,智能标记貌似不识别,但是运行没问题。似乎服务器控件 和<%%> 的功能差不多。
看的出是作者的经验之谈。我也针对作者所说的几点谈谈自己的经验。
首先来谈状态保存
因为WEB是无状态的,因此我们不能指望(一定不能指望)在一个网站的应用程序池中长期数据,在一定时间段不在执行或应用程序池内存使用超过多少(这个我已经暂时无从考验,还是几年前看到的文章)都是引起回收和重启。至于你所提到通过windows服务或桌面程序时时调用WEB,不能从根本上解决这个问题。
第二个就是多个应用程序池之间共享数据的问题。
通过数据库缓存依赖只能解决简单的select之类的问题。我不清楚MS为什么会推出这会鸡肋的功能。而且在存储过程中你不能使用if ,else等逻辑语句。
好的建议就是写一个windows服务,从内存中开一块共享内存,这样所有的应用程序池可以共享同一个数据。
我就厚着脸破帖一个以前的帖子(不用给我回复):
http://www.cnblogs.com/cnzc/category/59569.html
第三个关于session共享
我一直对这性能持怀疑。从来没有做过。不做评论了
我是不推荐使用web园的,总会发生各种各样的问题。
为了提高性能,我更愿意从其它地方下手。
好处:
1,需要时才加载,节省程序启动时间以及内存资源。其实这也是.net程序的核心思想之一。
2,使用者无需为初始化而费心,一切工作在Config内完成。
3,专用的锁对象lockobj,Double Lock的判断,解决了多线程时的同步问题,并且能保证最好的性能。
非常精辟!
其实应该是应用程序池自动回收w3wp进程,使得一些静态对象的数据回归到初始值。我向来不在Global或静态函数构造函数中初始化这些配置信息。
我的做法如下:
class Config
{
private static Config _Instance;
private static Object lockobj = new Object();
public static Config Instance
{
get
{
if(_Instance!=null)return _Instance;
lock(lockobj)
{
if(_Instance!=null)return _Instance;
_Instance=new Config();
//to do
//加载配置
}
}
}
}
无论从哪方面来说,我都觉得这种做法是最好的
首先感谢LZ分享实战经验。
1,对于静态变量,属性reset,楼主有没有试过,到底是资源回收,还是应用程序重启?
2,对于配置信息等的保存,建议用缓存,而不是在静态构造函数初始化,因为静态构造函数只执行一次,除非应用程序重启。
3,绝对正真要针对web场的大应用,分布式应用,缓存方面还是需要用分布式缓存。
@Argo
关于如何生成这个缓存依赖项,我觉得没有必要在这里详细说明了。毕竟这些特性,早已有前辈高手叙述过了,一查就能查到一大片内容。况且还有petshop的开源代码可供参考。

拜读,谢过!
所谓WEB花园也好,WEB农场也好,都是为分担大量用户访问的处理机制。WEB花园是把大量访问处理分配到同一机器的多个进程,WEB农场就是把大量访问处理分配到不同的机器。
编写这样的WEB应用程序,必须把公共的数据处理部分独立于进程或机器来设计。想必楼主经过这次DEBUG,一定比我们这些纸上谈兵的混混儿更了解其中的原理了。
讲了这么多,真正关键的地方却给漏掉了,DependencyFacade.GetUnitInfoDependency();
如何生成这个缓存依赖项
re: 设计模式杂谈:开头篇 Nothingisexisted 2008-01-09 17:37
SRP那里没写完,漏了点
您好,我用这种方法发送如果是一条一条的发没有问题,但我用多个客户端(发送消息时用线程发送)同时发送时在服务端反序列时报错.
输入流是无效的二进制格式。开始内容(以字节为单位)
是: 33-35-36-32-34-06-06-00-00-00-13-32-30-30-37-2D-31...
博主能不能帮忙看看我的问题
问题出现在InitializeClient函数中,当调用this.client = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
时出现异常:没有加载或者初始化请求的服务提供服务。
但是我用vs2005调试的时候都是正常的.我这是一个asp.net网页的后台程序发起的tcp连接
private Socket client;
public IPEndPoint host;
private void InitializeClient()
{
try
{
this.host = new IPEndPoint(IPAddress.Parse(connectip), iPort);
}
catch (Exception ex)
{
DevLib.JavaScript.JScript.Alert("host InitializeClient" + ex.Message.ToString());
}
try
{
this.client = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
}
catch (SocketException ex)
{
DevLib.JavaScript.JScript.Alert("client InitializeClient" + ex.Message.ToString());
}
}
private bool ConnectServer()
{
if(!IsConnected)
{
try
{
this.InitializeClient();
}
catch(Exception ex)
{
DevLib.JavaScript.JScript.Alert("InitializeClient" + ex.Message.ToString());
}
try
{ //Socket.Select(null,null,null,10);
this.client.Connect(this.host);
IsConnected = true;
return true;
}
catch (Exception err)
{
DevLib.JavaScript.JScript.Alert("this.client.Connect"+err.Message.ToString());
return false;
}
}
else
{
//this.Disconnect();
return false;
}
}
public void Disconnect()
{
if(IsConnected)
{
this.client.Shutdown(SocketShutdown.Both);
client.Close();
IsConnected = false;
}
}
public string SendMsg(string strMsg)
{
if(!ConnectServer())
return "error";}
--引用--------------------------------------------------
Pizza: lstServer.Items.Add(clientcommand + "("+clientep.Address + ":"+clientep.Port+")");
在线程中可以访问控件吗?我的为什么出错,有什么解决方法吗
--------------------------------------------------------
可以用lstServer.invoke来做线程间的操作.
我在vs2005下测试的 没有通过测试。出现了很多的问题。
1、server端程序:运行之后没有提示连接成功
2、client端程序:点击连接服务器,运行速度缓慢,页面没有任何的提示。
博主能不能给我发一份完整的SOCKET程序源码。
谢谢了。
public static void GetMaxThreads (
out int workerThreads,
out int completionPortThreads
)
bool flag = ThreadPool.SetMaxThreads(1,1);
flag:false;
我调用这个方法设置线城池大小的时候返回FALSE
为什么呢
re: 关于网站安全性的问题 BNJ! 2007-07-14 21:50
IIS是可以在一个站点的所有输出页面前后添加一段html的。这个可以设。
re: 关于Castle中AOP的一个问题,急!! TerryLee 2007-04-27 12:35
@ 李.net
第一种办法就是一个一个去写,这种办法有些繁琐
第二种办法就是给所有的业务组件都加上一个接口,比如说IBusinessObject接口,这样配置一个就行了
既然可以通过配置文件来配置,那么肯定可以通过代码来替代配置文件。
可以在App Start时通过枚举系统所有类来注册,这样看是不是是一个思路。