2013-08-05 36 views
0

我真的很掙扎知道問題是什麼在這裏...如何本地IIS網站和地方之間的Json調試

我已經在IIS中配置了2個網站......

**PH.Website** (STANDARD MVC PROJECT) 

**PH.Api**  (MVC WEB API PRIOJECT) 

當你點擊PH.Website,它使用其中一個控制器的WebClient類從PH.Api下載數據。然而小提琴手只能看到流量進入PH.Website而不是PH.Api。

在互聯網上閱讀後,我顯然必須在Web Api項目中對Syste.Net進行一些配置。所以我補充說...

<system.net> 
    <defaultProxy> 
     <proxy 
       usesystemdefault="False" 
       bypassonlocal="True" 
       proxyaddress="http://PH.Api" 
       /> 
    </defaultProxy> 
    </system.net> 

但仍然沒有運氣。我知道請求正在發生,我只是無法看到它。

什麼更令人困惑的是,當我配置Fiddler使用80端口,它說它無法偵聽該端口。但是,如果它不能聽80,那麼怎麼能看到Http端口上的流量:80呢?

P.s.我真的需要能夠在本地運行多個站點。我討厭在Localhost或127.0.0.1下運行的網站看起來很愚蠢,當你可以爲IIS中的所有內容創建單獨的網站,並確切地知道所有內容在哪裏映射的時候....

回答

0

讓我們備份吧。

Fiddler的代理服務器;它會看到發送給它的所有流量。一般來說(除非您將其用作反向代理服務器),否則您絕不希望配置Fiddler在端口80上運行;而是將其保留在默認運行的端口8888處。您改爲配置您的客戶端以代理其流量提琴手。

現在,你做了什麼「在互聯網上閱讀」,導致你修改了你的machine.config或web.config文件(你沒有提到你編輯過的)?

如果您的目標是使用Fiddler觀看流量,您需要point the ASP.NET proxy settings at Fiddler,而不是「PH.api」(例如,使用「127.0.0.1:8888」並將bypassOnLocal設置爲false)。進一步的複雜性在於System.NET繞過代理服務器對「localhost」或「127.0.0.1」的任何請求,所以如果你使用這些地址作爲你的目標,你應該暫時將它們改爲「localhost.fiddler」調試。

+0

YESSSS非常感謝。我設置我的MVC項目指向127.0.0.1:8888上的提琴手,它的工作原理。這是我的另一個快速q,但小提琴手怎麼知道如何轉發流量雖然?這個代理概念讓我對它的工作方式感到困惑(我知道代理的意思)。我的數據包如何在PH.api實際結束? 要回答你的問題,我改變了機器,在你的建議後我改變了web.config。我認爲更改web.config對於學習目的更加清晰。... – Exitos

+0

通過HTTP請求行(標頭的第一行)和HOS​​T標頭,向代理服務器通知請求的目標。 – EricLaw