HttpWebRequest вызывает страницу дважды - PullRequest
1 голос
/ 24 июня 2011

Проблема : это консольное приложение дважды вызывает долго работающую веб-страницу, размещенную в Azure. Я хочу, чтобы это называлось только один раз.

Консольное приложение завершается ошибкой с перехваченным исключением: основное соединение было закрыто: при получении произошла непредвиденная ошибка. так вопрос

Если я вызываю страницу из Chrome, она запускается один раз (как и ожидалось)

public class ExtendedWebClient : WebClient
{
    public int Timeout { get; set; }

    protected override WebRequest GetWebRequest(Uri address)
    {
        HttpWebRequest request = (HttpWebRequest)base.GetWebRequest(address);
        if (request != null)
            request.Timeout = Timeout;
        request.KeepAlive = false;
        request.ProtocolVersion = HttpVersion.Version10;
        return request;
    }

    public ExtendedWebClient()
    {
        Timeout = 1000000; // in ms.. the standard is 100,000
    }
}

class Program
{
    static void Main(string[] args)
    {
        var taskUrl = "http://secret.net/SendWeeklyEmails.aspx";
        // create a webclient and issue an HTTP get to our url
        try
        {
            using (ExtendedWebClient httpRequest = new ExtendedWebClient())
            {
                var output = httpRequest.DownloadString(taskUrl);
            }
        }
        catch (Exception ex)
        {
            Console.WriteLine("Exception was: " + ex.Message);
        }
    }
}

1 Ответ

1 голос
/ 24 июня 2011

Простой ответ - я не верю, что этот клиент дважды вызывает страницу!

Если ваш вызов выполняется долго, а Azure не позволяет вам выполнять длительный опрос, вам нужно будет перестроить это приложение, чтобы у вас были отдельные вызовы для запуска, а затем выполнить мониторинг этой задачи «SendWeeklyEmails». Вы могли бы даже сделать это, используя свой клиентский код командной строки вместо веб-приложения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...