2013-08-21 129 views
0

我有一個radscheduler,它的網站服務綁定設置就像網站上的演示。它在我的本地機器上正常工作,並且在我的本地Intranet服務器上工作正常。當我部署它的公共服務器,我收到以下錯誤(堆棧跟蹤):Telerik Radscheduler Web服務呼叫超時

[SocketException (0x274c): A connection attempt failed because the connected party did not properly respond after a period of time, or established connection failed because connected host has failed to respond 50.62.137.146:443] 
    System.Net.Sockets.Socket.DoConnect(EndPoint endPointSnapshot, SocketAddress socketAddress) +305 
    System.Net.ServicePoint.ConnectSocketInternal(Boolean connectFailure, Socket s4, Socket s6, Socket& socket, IPAddress& address, ConnectSocketState state, IAsyncResult asyncResult, Int32 timeout, Exception& exception) +699 

[WebException: Unable to connect to the remote server] 
    System.Net.WebClient.UploadDataInternal(Uri address, String method, Byte[] data, WebRequest& request) +3298576 
    System.Net.WebClient.UploadString(Uri address, String method, String data) +319 
    Telerik.Web.UI.SchedulerWebServiceClient.LoadResources(WebClient client, ResourcesPopulatingEventArgs args) +267 

[Exception: Unable to retrieve response message] 
    Telerik.Web.UI.SchedulerWebServiceClient.HandleWebException(WebException webEx) +311 
    Telerik.Web.UI.SchedulerWebServiceClient.LoadResources(WebClient client, ResourcesPopulatingEventArgs args) +364 
    Telerik.Web.UI.SchedulerWebServiceClient.GetResources() +421 
    Telerik.Web.UI.RadScheduler.BindResourcesFromWebService() +90 
    Telerik.Web.UI.RadScheduler.PerformSelect() +117 
    Telerik.Web.UI.RadScheduler.CreateChildControls(Boolean bindFromDataSource) +81 
    System.Web.UI.Control.EnsureChildControls() +182 
    System.Web.UI.Control.FindControl(String id, Int32 pathOffset) +35 
    Telerik.Web.ChildControlHelper.FindControlRecursive(String ID, Control root) +211 
    Telerik.Web.ChildControlHelper.FindControlRecursive(String ID, Control root) +283 
    Telerik.Web.ChildControlHelper.FindControlRecursive(String ID, Control root) +283 
    Telerik.Web.ChildControlHelper.FindControlRecursive(String ID, Control root) +283 
    Telerik.Web.ChildControlHelper.FindControlRecursive(String ID, Control root) +283 
    Telerik.Web.UI.RadAjaxControl.OnPagePreRender(Object sender, EventArgs e) +1450 
    System.EventHandler.Invoke(Object sender, EventArgs e) +0 
    System.Web.UI.Control.PreRenderRecursiveInternal() +113 
    System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +4201 

這隻有當我使用的ResourcePopulationMode =「ServierSide」發生。當我將其更改爲ClientSide時,它會起作用,並且Web服務會被正確調用。我正在使用提琴手來看看。我想使用分組,所以不能使用ClientSide。爲什麼這個錯誤發生?我需要在服務器上進行一些配置設置以使GetReources方法起作用嗎?任何幫助,將不勝感激:)謝謝

+0

好吧,我將問題縮小到我的服務器無法訪問它自己的公共IP。因此,如果網站只運行本地網絡,一切正常,因爲它可以調用URL 192.168.xx/*。asmx就好,但是當試圖訪問50.xxx/*.asmx時,因爲它似乎並不理解它正在調用自己。有沒有辦法解決這個問題? – onelight17

回答

0

我意識到這是非常古老的,但我碰到這一點,同時搜索由user1932424問的Telerik調度問題。

在我的情況下,這是一個AWS服務器(EC2/VPC)設置問題。我爲該服務器設置的安全組不允許任何端口進行出站呼叫。作爲一項規則,我在安全組中添加了HTTPS出站呼叫之後。問題消失了,允許Scheduler自己調用(.asmx webservice)來獲取數據。任何防火牆都可能導致這種情況,如果您可以在Web服務器上本地加載Web應用程序,一種簡單的檢查方法就是查看。

希望這可以幫助有類似問題的其他人。