2013-03-06 63 views
1

我希望實現REST服務,它將與ASP站點(基本上是同一個項目)集成在一起。Vanilla ASP.NET和REST

我試圖提供我的自定義VirtualPathProviderVPP),它的工作原理,但在一定程度上。首先,content-type的迴應始終是application/octet-stream。其次,只有GET請求通過VPP傳送。我見過有人玩弄HttpApplication來解決這些問題。我不知道是否希望按照黑客入侵ASP的方式行事,因爲這可能需要很長時間,最終完成任務可能根本不可能。

有沒有辦法做到這一點,或者我應該對MVC創建一個單獨的頁面,並通過一些進程間通信與它交談。這樣,MVC將處理REST請求並響應我的代碼。和反之亦然 - ASP將能夠發送REST請求到遠程服務器。

如果還有其他更清潔,更安全的&,將MVC與香草ASP鏈接的方法,然後隨意發表評論/答案。

回答

1

VirtualPathProvider旨在爲內部ASP.NET操作虛擬化文件系統(例如,將* .aspx和* .master文件存儲在數據庫中),它只適用於用戶提供的URI並且要求。

只是使用ASP.NET MVC,這是目前與ASP.NET集成您最好的選擇(因爲4.x版)或在.NET 3.x中容易可再發行組件在相同的應用程序中,ASP.NET MVC確實與WinForms相得益彰,所以不要重新發明輪子。

但是,如果你堅持,唯一真正的選擇是從一個自定義IHttpHandler是選擇處理傳入的請求或沒有(因爲你不會有ASP.NET URL路徑,因爲你沒有在做這一切使用ASP.NET MVC)。

+0

嗨戴,聽起來像你是正確的回答我的問題http://stackoverflow.com/questions/15061602/how-to-fake-a-directory-listing-in-iis-virtualpathprovider-works-但是,謝謝 – 2013-03-06 10:16:16

+0

@Dai是否有可能讓MVC和ASP項目一起運行,或者其中一個必須是默認的(本例中是MVC),它承載了另一個? – 2013-03-06 13:12:48