2009-06-10 66 views
9

對於我的公司,我創建了一個ASP.NET Web服務,該服務使用第三方付款程序引擎來授權信用卡交易。HRESULT:0x80010105(RPC_E_SERVERFAULT)問題

Web服務託管在單獨的應用程序服務器上,並通過ActiveX對象(.ocx擴展名)連接到支付處理服務器。最近,當我嘗試使用「IsAvaiable」檢查建立與應用程序的連接時,它一直在生成HRESULT:0x80010105(RPC_E_SERVERFAULT)異常。

有沒有人推薦一個好的地方開始研究這個問題?

使用ActiveX(我知道聯繫銷售商將是第一選擇,但我想有我「的鴨子在一排」之前我們聯繫技術支持)

回答

2

我有同樣的錯誤(RPC_E_SERVERFAULT) Web服務中的對象。每當ActiveX對象崩潰時,IIS就會拋出這個錯誤,這會掩蓋對象崩潰的原因(對於我們來說,它在加載無效文件時通常會崩潰,而它需要處理並返回值)。

您是否檢查過系統日誌等以查看您的ActiveX控件是否在任何地方記錄了實際的錯誤?

如果你看不到任何明顯的東西,我建議聯繫他們的技術支持人員,找出診斷實際錯誤的最佳方法,以及是否在任何地方記錄錯誤。

+1

我檢查了Web服務服務器的事件日誌,但沒有看到與RPC_E_SERVERFAULT錯誤相關的任何錯誤。我無法訪問應用程序服務器,也許我可能會在那裏找到某些東西。 – 2009-06-10 01:17:16

0

您可以啓用adplus讓它在您每次遇到異常時抓取內存轉儲。這可以用來幫助調試問題。

+0

內存轉儲來自哪裏:IIS或ActiveX對象? – 2009-06-10 15:29:13

+0

內存轉儲來自應用程序,而不是來自單個模塊,因此IIS – 2009-06-10 20:44:45

+0

發生異常時,它實際上並不生成.DMP文件。有沒有其他類型的文件擴展名我應該查找,這將被視爲內存轉儲。 – 2009-06-17 22:45:24

2

Michael,您的第三方Activex控件可能無法正確管理內存。我的猜測是它不應該覆蓋內存的一部分。請諮詢您的第三方提供商,看看他們是否有解決方案。

1

我知道這是堆棧溢出,應該有一個編程答案在這裏,但你沒有提到更新或軟件更改失敗的機器。如果沒有軟件更改,則很可能是硬件問題。 RAM失敗,CPU失敗,硬件失敗。如果您可以使系統脫機並測試硬件,您可能會發現磁盤或內存模塊出現故障(也可能是NIC)。這很可能是供應商要你做的第一步,但如果你自己做,你可以根據自己的條款來做,並且可以在幾個小時的時間內爲自己安排服務費。

+0

這是廢話 – Elmue 2017-05-24 19:35:56

+0

@Elmue有什麼建設性的補充?驗證硬件往往是一個很好的步驟,我目睹了壞RAM導致各種錯誤,包括加密簽名驗證問題。如果加密失敗,RPC可能因此而失敗。這個問題在聯繫供應商時也詢問了有關建議,例行硬件將通過電話代理商用於轉儲呼叫的一些低級技術。 – Sqeaky 2017-06-02 04:06:59

+1

我見過幾個RPC_E_SERVERFAULT錯誤。從來沒有硬件的原因。這個錯誤只是意味着COM服務器崩潰了。原因主要是編程錯誤,如緩衝區溢出或讀取空指針或錯誤處理錯誤。如果你有RAM問題,你會看到不同的應用程序崩潰(不只是在一臺服務器),甚至直到bluescreens。 hadware問題不可能僅在一個應用程序中導致崩潰。 – Elmue 2017-06-03 02:15:59

0

也可能意味着COM對象崩潰。如果在Excel中發生這種情況,會導致Excel崩潰。嘗試重新運行由COM對象表示的應用程序(在我的情況下是一個Excel插件),並查看它是否崩潰或產生一些錯誤。

相關問題