我有一個非常愚蠢的問題,但由於某種原因,我無法在網上找到任何治療方法或信息。當我向WebGet方法傳遞多個參數時WCF/WebAPI:HTTP 500錯誤
摘要:我無法傳遞給多個參數的WebGet方法。如果我這樣做,服務器返回HTTP 500錯誤,並且該方法不執行。我的代碼和請求如下。
[ServiceContract]
public class WebmailAPI {
...
[WebGet(UriTemplate= "Webmail?messagetype={messageType}&unreadonly={unreadOnly}&skip={skip}&take={take}")]
public void Get(MessageType messageType, bool unreadOnly, int skip, int take) {
...
}
}
的global.asax.cs: routes.SetDefaultHttpConfiguration(新WebApiConfiguration(){EnableHelpPage =真,EnableTestClient =真}); RouteTable.Routes.MapServiceRoute(「api /」);
此請求執行罰款: http://localhost:9000/api/Webmail/?messagetype=1
這一個返回500錯誤:
http://localhost:9000/api/Webmail/?messagetype=1&unreadonly=0&skip=0&take=100
信息: VS2010 SP1 + ASP.NET 4 +實體框架2001年6月CTP +最新的WebAPI
感謝您提前提供任何幫助!
P.S.我試圖在查詢字符串中對HTML編碼「&」 - 無效。
我會試試,謝謝! –
是的,你是對的。 對於受衆:好吧,WCF/WebHttp/WebAPI對參數類型非常敏感。對於布爾參數,確保將值指定爲true/false,而不是1/0。它有點有趣,但它可以識別枚舉,但如果它們是用數字表示的話,則無法解析布爾值。 –
@AlexAvrutin:我不認爲這是奇怪的,因爲框架支持枚舉,布爾也是如此。但是,在.NET中,唯一允許的值是'true'和'false'。 '0'和'1'不是布爾值,它們是整數,並且沒有隱式轉換。 – nicodemus13