STHISTools.ParamUrlCode.Url = url
STHISTools.ParamUrlCode.Url闲置时间较长就被回收了,为什么?
public class STHISTools
{
public class ParamUrlCode
{
private static string url = "";
public static string Url
{
get
{
return url;
}
set
{
url = value;
}
}
}
}
public class Servie : IService
{
private string Url = "";
//
/// 测试WCF链接是否建立成功
///
///
public bool TestLink(string url)
{
try
{
STHISTools.ParamUrlCode.Url = url;
HttpWebRequest myRequest = (HttpWebRequest)WebRequest.Create(STHISTools.ParamUrlCode.Url);
myRequest.Method = "POST"; //设置提交方式可以为"get","head"等
myRequest.Timeout = 10000; //设置网页响应时间长度
myRequest.AllowAutoRedirect = false;//是否允许自动重定向
HttpWebResponse myResponse = (HttpWebResponse)myRequest.GetResponse();
}
}
}
静态内存的数据都会有回收机制 如果要长时间间隔使用可以考虑将地址存储到配置文件中使用
静态变量是全局性的,即使不被引用,也是根级节点的变量,其生存周期为应用程序的存在周期,故不会被正常的回收机制回收;
但是,部署在IIS的服务,其应用程序域可能因为某种异常,网站更新,以及回收选项的设置而触发回收操作,这个时候就会导致静态变量的回收
和重新初始化(与其说是回收的机制,不如说是相关进程的关闭和重新运行)