我有一個運行在Ubuntu 12.04LTS和Mono(mono-complete-2.10.8.1)上的有問題的.Net應用程序,它在localhost:8090上激活了一個HttpListener。每當我向服務器發送一個請求時,它立即發回400錯誤的請求。在Ubuntu/Mono上運行的HttpListener返回400錯誤請求
我認爲這可能是Ubuntu的事情,因爲: - 在Windows上運行時,完全相同的應用程序處理請求很好。事實上,它處理請求是否在MSFT CLR或Mono for Windows CLR中執行。 - 根據其他日誌記錄,綁定成功。 - 我得到一個背景下,像這樣後立即記錄聲明:
try {
var context = httpListener.GetContext();
Log.Debug("Request received");
// Send to handlers, etc...
} catch (Exception ex) {
Log.Error("HttpListener error: {0}", ex.Message);
}
現在在Ubuntu設置,日誌記錄語句不會被報道,但我還是設法得到了400回來了,所以我只能假設HttpListener從未獲得請求,或者在給我一個更改來處理它之前生成響應。
如果有什麼,有人可以建議如何解決這個問題?我在Linux上最好是少年。儘管默認情況下iptables設置爲全部允許,但我爲我正在監聽的端口挖了一個洞。
感謝
編輯:此外,沒有例外伸手被捉在上面的代碼片段要麼。
您是否試圖在不執行程序的情況下執行請求?也許別的東西正在接到你的電話...... – Gusman
謝謝你的回覆。我只是試過,當服務器沒有運行時,我得到「無法連接到服務器」。當它運行時,我會收到「錯誤的請求」。 –
好吧,那麼發現有什麼事情會有點困難,網絡嗅探器或http代理可以幫助你很多,通過它來請求你的請求,並觀察真正的請求。 – Gusman