2010-07-02 74 views
1

我正在使用HTTPWebRequest從客戶端向配置爲接受遠程請求的遠程計算機上的Cassini Web服務器發送POST請求。但是,我沒有指定一個文件作爲URL的一部分。我正在將請求直接發送到服務器,如「http://172.34.142.12:8080/」中所述。但是,我無法收到正確的迴應,並收到「405方法不允許」錯誤。我正在使用卡西尼3.5。有關爲什麼會發生這種情況的任何建議?向卡西尼Web服務器發送帶有'/'的請求URI的POST請求,導致405錯誤。爲什麼?

+0

只是爲了確認你有些暗示 - 從同一個遠程主機到同一網址的GET調用工作正常嗎?另外,如果您位於同一臺計算機上,POST調用是否可以工作?我注意到POST和PUT調用Cassini對我來說也失敗了,但是我從來沒有深入瞭解爲什麼(這些對localhost來說,很可能是一個不相關的原因) – 2010-07-02 19:04:37

+0

我還沒有用GET嘗試過。但是,即使在同一臺機器上,POST也不起作用。我仍然遇到同樣的問題。我需要使用POST,因爲我直接向服務器發送數據,而在服務器端,我修改了Cassini來處理髮送的數據,例如基於數據創建新的進程。 – gofeddy 2010-07-02 19:09:25

+0

確認:在一些修改代碼並使用它之後,它與GET(在遠程機器上)一起工作。但是,正如詹姆斯所說,我無法使用POST來完成它。 – gofeddy 2010-07-09 18:39:48

回答

1

卡西尼硬編碼爲不接受來自運行它的任何主機的請求。這是出於安全原因編程的。

如果你真的需要這個功能,你必須建立自己的版本。關於如何做到這一點,有幾個演練,here's one

+0

我使用的版本是這個,它也接受遠程請求:http://blogs.msdn.com/b/dmitryr/archive/2008/10/03/cassini-for-framework-3-5.aspx – gofeddy 2010-07-02 19:10:41

1

我的公司提出了名爲Neokernel可以幫助你的產品:www.neokernel.com

的Neokernel是根據卡西尼號。它是一個專業的,可嵌入的ASP.NET Web服務器,它包含一個小型自包含的程序集,包含日誌記錄,SSL,支持多個ASP.NET應用程序,編程配置,對虛擬目錄的支持,並運行任何IIS應用程序。它也適用於Mono框架;我們開發了它,因爲卡西尼(以及從中派生出的各種項目)存在一些問題。