2016-08-01 36 views
2

沒有調試的Web API我有一個Web API(.NET MVC)這是正在從一個MS Access VBA模塊調用,就像這樣:可以從MS稱爲訪問

objHTTP.Open "POST", "http://ourwebserver/api/run", False 
objHTTP.setRequestHeader "Content-Type", "application/json" 
objHTTP.send (body) 'body is a string containing the parameters to be used 
Debug.Print objHTTP.Status 
Debug.Print objHTTP.responseText 

嗯,我需要能夠調試實際的api。所以,我已經將項目加載到本地機器上了,但我不確定如何真正調試代碼。

我到目前爲止已經試過是運行項目,在控制器的頂部設置一個斷點,然後更改objHTTP.Open命令,使其指向所創建的localhost條目:

objHTTP.Open "POST", "http://localhost:54321/api/run", False 

以及如:

objHTTP.Open "POST", "http://localhost:54321/", False 

...但是,在這兩種情況下,斷點都不會被命中。它與Status = 500失敗。

我也嘗試附加到調試器...但我不知道要附加到它。列表中沒有w3wp.exe。我試圖將它附加到MSACCESS.exe和Chrome,但我只是沒有成功。當我附加到MSACCESS.exe時,出現無法建立連接的錯誤。

所以基本上,我想弄清楚如何告訴我的VBA進程調用我的本地API代碼,所以我可以調試它。我很難搞清楚這些魔術詞的作用。

編輯:爲了記錄在案,當我嘗試運行項目(從VS F5),我得到以下RTE在我的瀏覽器:

Could not load file or assembly 'Antlr3.Runtime' or one of its dependencies. An API call exited abnormally. (Exception from HRESULT: 0x800300FA (STG_E_ABNORMALAPIEXIT))

回答

2

Figgered吧!我之前在本地機器上運行過這個解決方案,但忘記了使其運行所需的魔法。基本上,這個錯誤:

Could not load file or assembly 'Antlr3.Runtime' or one of its dependencies. An API call exited abnormally. (Exception from HRESULT: 0x800300FA (STG_E_ABNORMALAPIEXIT))

...是的Identity Impersonate是在我的web.config文件true結果。所以,我們這樣做:

<identity impersonate="false" userName="dom\UserName" password="#########"/> 

然後,我能夠F5進入我沒有錯誤的Web應用程序,並調用API與此代碼在VBA:

objHTTP.Open "POST", "http://localhost:54321/api/run", False 

我現在可以調用來自Access的API,擊中斷點並逐步完成!