我們有一個簡單的控制檯應用程序,用C#.NET 4.0編寫,當前在計劃任務上運行。這個控制檯應用程序直接從磁盤上直接取出文件,然後將它們上傳到同一臺機器上託管的ASP.NET網站。當在計劃任務上運行時,Web請求在控制檯應用程序中失敗
當此控制檯的觸發時間運行失敗,但下列情況除外:
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出現的錯誤()
你在127.0.0.1:80上收聽什麼? –
這是一個Web服務器,因此IIS將在端口80上偵聽。 – Mmerrell