2009-12-31 107 views
1

我構建了一個使用一些Web服務的Delphi-7 Windows應用程序。應用程序的構建方式不需要運行時DLL。當我將它部署在Windows 2003服務器上時,它在調用Web服務時失敗。它導致錯誤「地址00c05269處的訪問衝突,地址00c05269的寫入」。我相信其原因是它需要安裝一些軟件包。有人能幫我弄清楚嗎?如何在Windows XP/Windows 2003上部署Delphi Soap Client(.EXE)?

TIA

+0

老實說,有一百五十個可能的原因。你確定它不需要任何DLL嗎? BorlndMM/FastMM幾乎一直都不需要?它是如何部署的?你在其他機器上試過了嗎?是否安裝了Delphi?訪問違規只是一個糟糕的指針,它可能意味着*任何*。 Web服務庫或其調用代碼甚至可能無法正確處理例程錯誤。我建議儘可能多地列出導致錯誤的環境,部署和步驟信息。 – Aaronaught 2009-12-31 19:48:32

+0

感謝您的回覆!是的,我確定這是一個部署問題。我不確定哪些DLL需要在服務器上註冊。德爾福的部署筆記根本沒有談論這個。 Delphi應用程序本身工作正常,只是它在調用Web服務方法時會導致此錯誤。我在Delphi Websnap DLL已經運行的另一臺服務器上測試了我的測試應用程序,它的運行方式與預期的一樣。但是沒有關於在那臺機器上安裝或註冊哪些Delphi或SOAP的文檔。 – harry 2009-12-31 20:58:18

+0

我將整個Delphi \ Bin文件夾複製到服務器C:\ DelphiBin中,並將其添加到系統搜索路徑中。問題依然存在! – harry 2009-12-31 21:03:18

回答

6

只是猜測:如果客戶端是用D7構建的,那麼運行時將AV啓用DEP的機器上。請參閱以下鏈接瞭解更多信息:

groups.google.com/group/borland.public.delphi.webservices.soap/msg/b19f3c2681de50f4 

您可以僅針對該客戶端禁用DEP(或系統範圍)贏2003機器上,看看如果是這樣的問題:

technet.microsoft.com/en-us/library/cc738483(WS.10).aspx 

如果這是,你可以從這裏下載一個SOAP運行修復:

http://cc.embarcadero.com/Item/24535

乾杯,

Bruneau

+0

我想說DEP--我們在2003年有一個郵編SOAP查找程序出現這個問題。關閉我們程序的DEP,一切都變好了。 – robsoft 2010-01-03 08:49:17

+0

太棒了!感謝Bruneau。 DEP是問題。只有Windows服務纔打開DEP才能正常工作! – harry 2010-01-04 16:08:38

0

一些故障排除建議。

您可以通過網頁瀏覽器瀏覽網頁服務嗎?如果沒有,你有連接問題。

如果這樣做,我會構建一個純粹的骨骼客戶端,它會使用Web服務並調用一些方法,但不讀取或寫入任何外部文件。

+0

該程序不讀取或寫入文件。它只是調用Web服務並將返回值寫入TMemo對象。我可以從IE訪問Web服務。當我在已經運行Delphi Websnap DLL的服務器上運行它時,同樣的程序運行正常。 – harry 2009-12-31 20:53:54

+0

不知道更多,我建議你使用RRUZ的建議,並使用異常記錄器來找出究竟是什麼不能縮小原因。 – 2010-01-01 14:35:42