2011-12-21 63 views
1

我有一個面向服務的網站,它的所有html都是由wcf服務生成的。我正在部署我的服務。但問題是在wcf代碼中,我始終將請求作爲不良請求返回,但是我在statustext中執行了我的操作,例如成功錯誤等......所以服務無法正常工作的問題100%時間沒問題,有時它們會返回statusText如假設的那樣,有時它們會返回BAD REQUEST,這會在我的應用程序中造成混亂。有沒有iis設置或我必須寫的東西,以確保它返回statusText所假定的?這是我的代碼在WCF改變它:jqXHR.statusText總是返回「BAD REQUEST」

//Set the http status code 
currentContext.OutgoingResponse.StatusCode = System.Net.HttpStatusCode.BadRequest; 
//set the msg 
currentContext.OutgoingResponse.StatusDescription = "Success"; 

我使用jQuery 1.4.2和WCF 4.0

+2

這聽起來很糟糕。 – 2011-12-21 21:28:36

+1

您發送一個HTTP標頭用於「不良請求」(這意味着服務器由於格式錯誤而無法處理請求),然後在主體中說「成功」...?這有什麼意義? – Quasdunk

回答

1

一些平臺不接受自定義狀態描述文本 - 這取決於瀏覽器,操作系統,還有其他一些因素(我知道Mac上的Safari不會)。只是不要那樣做。 HTTP RFC指定每個狀態碼的含義(這樣那些平臺可以利用它並跳過解析響應頭的第一行的其餘部分)。如果您確實需要傳達一些附加信息,請嘗試使用一些自定義響應標頭:

currentContext.OutgoingResponse.StatusCode = HttpStatusCode.BadRequest; 
currentContext.OutgoingResponse.Headers["X-Status"] = "Success";