WCF 服务返回 dynamic 类型产生的问题

今天在调用一个 WCF 服务时,抛了以下异常:

An error occurred while receiving the HTTP response to http://localhost:9999/Base.svc. This could be due to the service endpoint binding not using the HTTP protocol. This could also be due to an HTTP request context being aborted by the server (possibly due to the service shutting down). See server logs for more details.

dudu 之前曾经园子里有发表过类似问题解决方案的博文,详见《枚举类型引起WCF的错误——“This could be due to the service endpoint binding not using the HTTP protocol”》。

但是看来与我所遇到的问题不一样。


在检查 WCF 服务代码时,发现服务返回额类型是 dynamic,于是心想会不会是 dynamic 在返回时序列化出错造成此异常。

遂把返回类型由 dynamic 改为 string,在返回之前先把要返回的 dynamic 对象序列化为字符串。


编译服务 -> 更新服务 -> 调用服务,调用成功。


看来是 WCF 的序列化没有对 dynamic 类型进行支持。

那很有可能存在其他不支持的类型。


需要找时间看看 WCF 方面的知识了。