2010-07-21 161 views
0

我無法弄清楚爲什麼在生產中從我的asp.net應用程序只調用時我的web服務無法正常工作。故障調試asp.net web服務

我能夠在本地運行我的asp.net應用程序,調用Web服務(在生產中)並正確完成。

我能夠修改web.config以允許我在生產Web服務上使用測試表單並正確調用它。

我打電話給一個共享DLL中的Web服務,並且我已經檢查過我確實正在獲取更新後的dll。

這是一個非常基本的Web服務來登錄其他地方沒有處理,在我們的網站的任何異常。我爲它添加了額外的參數,並將它移動到另一個項目,以便與更多的Web服務分組。這是被稱爲ExceptionServices

我的共享DLL它自己的ASMX文件中有一類ErrorHandler這就要求(在這一點上,測試方法)TestEmail(string to)和所有所做的是向我發送電子郵件。

就像我說的,在本地運行我的應用程序時,它會調用生產Web服務,一切都很好。

我在託管環境中運行,無法安裝遠程調試工具,因此無法逐步執行生產代碼(除非有人知道任何技巧)。

這似乎只是這應該工作(鍵盤上撞頭)...

這裏是我的基本的Web方法:

[WebMethod] 
    public void TestEmail(string to) 
    { 
     MailMessage mm = new MailMessage("[email protected]", to, "test", "body here"); 
     SmtpClient client = new SmtpClient("localhost"); // already tried tweaking smtp server, and all my options work when I use the test form 
     client.Send(mm); 
    } 

的ErrorHandler類的共享DLL

public class ErrorHandler 
{ 
    public static void ThrowError(Exception ex, string sitename, string ip, string username) 
    { 
     //if (ip != "127.0.0.1") // exclude local errors when developing 
     { 
      EILib.ExceptionServices.EIExceptionHandler eh = new EILib.ExceptionServices.EIExceptionHandler(); 
      eh.TestEmail("[email protected]"); 
     } 
    } 
} 

最後我的global.asax開始在這裏:

protected void Application_Error(object sender, EventArgs e) 
    { 
     //Get the Error.   
     System.Exception anError = Server.GetLastError(); 
     EILib.ErrorHandler.ThrowError(anError, "mydomain.com", EILib.Utilities.GetUserHostAddress(Request), User.Identity.Name); 
     .... 
    } 
+0

它是否給任何形式的錯誤消息的?事件日誌中的任何內容?或者這是完全沉默的失敗? – ThatBlairGuy 2010-07-21 22:32:04

+0

沒有我能找到的錯誤。該解決方案託管在Rackspace,所以我不相信我有任何形式的訪問事件日誌。我啓用了對Web服務的跟蹤。我可以看到來自localhost的調用,但不能看到生產,所以看起來web服務沒有被調用。所有路徑看起來都是正確的,我沒有看到我的web應用程序的跟蹤輸出中有任何內容。 – earthling 2010-07-22 17:13:45

+0

如果一切都失敗了,總會有將調試語句寫入文本文件的完全不雅的解決方案。 – ThatBlairGuy 2010-07-23 13:07:12

回答

1

驗證SMTP服務您的生產服務器上運行。檢查它是否配置爲允許默認憑據(託管公司可能需要電子郵件憑據)。檢查服務是否配置爲從本地計算機接收郵件(而不是使用其中一種拾取目錄傳送方法)。

+0

SMTP不是問題。我能夠使用測試表單併成功發送電子郵件。我也能夠從本地主機上運行的應用程序成功調用Web服務。另外,我在前面調用的Web服務,託管在同一臺服務器上也發送了一封電子郵件。 – earthling 2010-07-21 22:20:59

+0

它必須是一個配置問題。如果Web服務獨立工作,那麼它就是調用它的代碼。包含對Web服務的引用的可執行文件是否在其配置中具有正確的URL? (它仍然指向舊服務?) – ThatBlairGuy 2010-07-22 01:45:26

+0

我在添加新服務時刪除了舊服務。我也確認它有正確的網址。我瀏覽了Web References文件夾中的文件,以及在哪裏看到一個URL,這是正確的。 – earthling 2010-07-22 17:04:43