2013-10-23 129 views
0

相對較新的mvc。我有我認爲一個奇怪的架構項目,我有人離開我的公司後繼承。有兩個「服務層」。主層是一個期待REST查詢的MVC 4項目。下面是它如何工作的:無法調試MVC4項目

  1. 在另一個項目中一個asp.net頁面允許用戶輸入一個REST查詢。同一個asp.net頁面調用serviceRequest.DownloadString和輸入的REST查詢。

  2. 這會導致調用mvc 4項目中的DelegatingHandler。此DelegatingHandler會對請求發送的標頭進行一些驗證。如果數據正確,DelegatingHandler使用傳遞給DelegatingHandler的相同REST查詢調用base.SendAsync。

  3. 這將激活由REST查詢調用的mvc 4項目中的控制器。如果它正在工作,則mvc 4項目返回xml。

4,要完成控制器從wcf項目調用方法的大部分工作,

發生的事情是,如果在Visual Studio中運行,此架構可以正常工作。如果將兩個服務層(mvc 4和wcf項目)部署到本地計算機上的IIS應用程序,它也可以正常運行。

將服務層部署到兩臺單獨的計算機上時會出現此問題,一臺位於dmz,另一臺位於防火牆內的macine上。它返回一個500.

我使用了fiddler並修復了一個與連接字符串有關的問題。一旦完成,我仍然得到了500的結果,但沒有其他信息。在這種情況下運行的Fiddler再次僅確認我被接收500。我曾嘗試:

  1. 在WCF層中使用現有的功能puting跟蹤代碼在兩個服務層

  2. 的CONFIGS到將一些調試信息寫入控制器的表中。

我意識到,我可能沒有張貼在跟蹤代碼在MVC和WCF的配置文件,但它似乎是簡單地完全繞過了MVC 4項目。我也注意到一些關於能夠使用debug.write的信息。這是一個可行的選擇。

這兩個步驟都沒有讓我更接近解決問題。我得到的印象是,mvc 4代碼根本不會被調用,並且在調用serviceRequest.DownloadString調用DelegatingHandler時發生錯誤。但是我不知道該去哪裏看看我是否正確。代碼中是否有一個地方(例如和事件),我可以使用它來跟蹤離開asp.net頁面時的代碼並嘗試轉到mvc 4項目?

調試這個最好的方法是什麼?任何幫助,將不勝感激。

感謝,

Fig0000

回答

0

我不太清楚,但看起來像回到沒有顯示,因爲你不是在本地主機上運行的錯誤。而錯誤可能是一些配置文件錯誤或其他任何東西。

你可以嘗試運行隔離(也許創造了每一個虛擬方法的應用,如果這樣的作品,使內部電話(假/模擬),所以你可以看到什麼實際的問題。

OR 你。可以嘗試讓MVC顯示即使是在偏遠的所有錯誤,您可以在web.config中做到這一點:

<customErrors mode="Off"> 
</customErrors> 
+0

我設法做一些跟蹤它看起來像API在激發Application_Start事件,但沒有控制器。這隻發生在應用程序部署到遠程服務器的時候,我在api的OnException事件中放了一個似乎沒有觸發的事件。我需要找到Application_Start()後發生的其他事件。任何意見,將不勝感激。什麼會阻止控制器發射? –

+0

我只是追溯所有的請求事件,他們都被解僱了。控制器仍然沒有開火。 –

+0

網址重寫,靜態MIME類型,全局或控制器屬性,在網絡配置路由。實際上可以是很多事情。 –