У меня есть программа, в которой мне нужно создать большое количество папок на внешнем сайте sharepoint (внешнее означает, что я не могу использовать объектную модель sharepoint). Для этого хорошо работают веб-запросы, но простое выполнение их по одному (отправка запроса, ожидание ответа, повторение) довольно медленное. Я решил сделать запросы многопоточными, чтобы ускорить процесс. Программа значительно ускорилась, но через некоторое время (1-2 минуты или около того)
в System.Net.Sockets.Socket.DoConnect (EndPoint, endPointSnapshot, SocketAddre
ss socketAddress)
в System.Net.Sockets.Socket.InternalConnect (EndPoint remoteEP)
в System.Net.ServicePoint.ConnectSocketInternal (Boolean connectFailure, Socket s4, Socket s6, Socket & socket, IPAddress & address, ConnectSocketState state,
m это нормально или есть способ получше?
public class ExtendedController : Controller
{
protected virtual void HandleHttpRequest(AuthorizationContext filterContext)
{
if (!string.Equals(filterContext.HttpContext.Request.HttpMethod, "GET", StringComparison.OrdinalIgnoreCase))
{
throw new InvalidOperationException("Cannot post between https and http.");
}
string url = "http://" + filterContext.HttpContext.Request.Url.Host + filterContext.HttpContext.Request.RawUrl;
filterContext.Result = new RedirectResult(url);
}
protected override void OnAuthorization(AuthorizationContext filterContext)
{
base.OnAuthorization(filterContext);
object[] attributes = filterContext.ActionDescriptor.GetCustomAttributes(true);
if (!attributes.Any(a => a is RequireHttpsAttribute))
{
if (filterContext == null)
{
throw new ArgumentNullException("filterContext");
}
if (filterContext.HttpContext.Request.IsSecureConnection)
{
this.HandleHttpRequest(filterContext);
}
}
}
}