WCF:如何自定义错误响应

时间:2011-10-26 12:57:47

标签: wcf json

我正在创建一个与定制嵌入式硬件通信的服务。客户端(自定义硬件)上的代码用C语言编写,用于存储接收数据的缓冲区大小是有限的。服务器端正在返回JSON对象,但如果客户端发送错误请求,它将收到以下内容:

."703"HTTP/1.1 400 Bad Request

.Content-Type: text/html; charset=us-ascii

.Server: Microsoft-HTTPAPI/2.0

.Date: Wed, 26 Oct 2011 11:42:06 GMT

.Connection: close

.Content-Length: 326

.

.<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN""_http://www.w3.org/TR/html4/strict.dtd">

.<HTML><HEAD><TITLE>Bad Request</TITLE>

.<META HTTP-EQUIV="Content-Type" Content="text/html; charset=us-ascii"></HEAD>

.<BODY><h2>Bad Request - Invalid Verb</h2>

.<hr><p>HTTP Error 400. The request verb is invalid.</p>

.</BODY></HTML>

以下两种方法以正确和错误的请求返回所需格式(JSON)的响应:

[WebGet(UriTemplate = "StoreData/sid={SessionID}&Data={UserData}", ResponseFormat = WebMessageFormat.Json, BodyStyle = WebMessageBodyStyle.Bare)]
        public string StoreData(string SessionID, string UserData)
        {
            string ID = DBWorks.StoreUserData(SessionID, UserData);
            return ID;
        }

        [WebGet(UriTemplate = "*", ResponseFormat = WebMessageFormat.Json, BodyStyle=WebMessageBodyStyle.Bare)]
        public string GenreateErrorMessage()
        {
            return "error";
        }

是否有可能以与GenerateErrorMessage()类似的方式创建一个返回短消息的方法,例如“无效动词”而不是html内容?

如果有人建议如何为所有错误请求返回自定义(JSON)内容,我将不胜感激,因此具有小缓冲区的客户端将能够处理内容。

在服务器端,WCF服务托管在托管应用程序中。

0 个答案:

没有答案