У нас есть простое консольное приложение, написанное на C # .NET 4.0, которое в настоящее время выполняется по расписанию.Это консольное приложение просто берет файлы из одного непосредственно на диск, а затем загружает их на веб-сайт ASP.NET, размещенный на том же компьютере.
Когда эта консоль запускается во время ее запуска, происходит сбой со следующим исключением:
Message: Unable to connect to the remote server
Stack Trace: at System.Net.HttpWebRequest.GetRequestStream(TransportContext& context)
at System.Net.HttpWebRequest.GetRequestStream()
at Program.Main(String[] args) in Program.cs:line 69
Inner Exception: System.Net.Sockets.SocketException (0x80004005): No connection could be made because the target machine actively refused it 127.0.0.1:80
at System.Net.Sockets.Socket.DoConnect(EndPoint endPointSnapshot, SocketAddress socketAddress)
at System.Net.ServicePoint.ConnectSocketInternal(Boolean connectFailure, Socket s4, Socket s6, Socket& socket, IPAddress& address, ConnectSocketState state, IAsyncResult asyncResult, Int32 timeout, Exception& exception)
Однако, когда мы запускаем приложение вручную, оно прекрасно работает, а также когда мы переходим к запланированным задачам и запускаем задачу вручную, она выполняется без ошибок.
У нас естьфайл хоста, настроенный в настоящее время для домена, к которому он пытается подключиться, указывает на обратный IP-адрес, который вы видите в исключении.Это происходит из-за конфигурации брандмауэра, которая не допускает внутренних подключений к внешнему IP.
Дополнительная информация о запланированном задании:
- Он настроен для запуска с учетными данными администратора и с самыми высокими разрешениями.
- Он запускается только один раз в день
- Он без проблем выполняет другие операции (перемещение и переименование файлов)
- Ошибка возникает в HttpWebRequest.GetRequestStream ()