Hash表重复问题,如果网站头一次运行,两个页面同时申请访问可能出现插入两次Hash表同一个Provider的问题 public class UrlRewritingProviderCollection : ProviderCollection { public override void Add(ProviderBase provider) { if (provider == null) throw new ArgumentNullException("provider"); if (!(provider is UrlRewritingProvider)) { string msg = string.Format("Provider must implement type {0}", typeof(UrlRewritingProvider).ToString()); throw new ArgumentException(msg, "provider"); } if (base.Count == 0) { base.Add(provider); } } public void CopyTo(UrlRewritingProvider[] providers, int index) { base.CopyTo(providers, index); } new public UrlRewritingProvider this[string name] { get { return (UrlRewritingProvider)base[name]; } } } 下载url加一个红色的判断就可以了,或者用trycacth
System.Collections.Hashtable.Insert(Object key, Object nvalue, Boolean add) +2904181
System.Collections.Hashtable.Add(Object key, Object value) +11
System.Configuration.Provider.ProviderCollection.Add(ProviderBase provider) +75
UrlRewritingNet.Configuration.Provider.UrlRewritingProviderCollection.Add(ProviderBase provider) +40
UrlRewritingNet.Web.UrlRewriting.Initialize() +181
UrlRewritingNet.Web.UrlRewriting.CreateRewriteRule(String providerName) +13
UrlRewritingNet.Web.UrlRewriteModule.Init(HttpApplication context) +217
System.Web.HttpApplication.InitModulesCommon() +66
System.Web.HttpApplication.InitInternal(HttpContext context, HttpApplicationState state, MethodInfo[] handlers) +1006
System.Web.HttpApplicationFactory.GetNormalApplicationInstance(HttpContext context) +259
System.Web.HttpApplicationFactory.GetApplicationInstance(HttpContext context) +114
System.Web.HttpRuntime.ProcessRequestInternal(HttpWorkerRequest wr) +350
{
public override void Add(ProviderBase provider)
{
if (provider == null)
throw new ArgumentNullException("provider");
if (!(provider is UrlRewritingProvider))
{
string msg = string.Format("Provider must implement type {0}", typeof(UrlRewritingProvider).ToString());
throw new ArgumentException(msg, "provider");
}
if (base.Count == 0)
{
base.Add(provider);
}
}
public void CopyTo(UrlRewritingProvider[] providers, int index)
{
base.CopyTo(providers, index);
}
new public UrlRewritingProvider this[string name]
{
get
{
return (UrlRewritingProvider)base[name];
}
}
}
下载url加一个红色的判断就可以了,或者用trycacth