【发布时间】:2011-07-15 16:28:10
【问题描述】:
我有一个简单的 WCF 服务,当我在我的开发机器上进行测试时,它运行良好。
现在我已将 Web 服务移至 Web 服务器,并在 http://mydomain.com:8005 上运行该服务(在调试模式下)。打开该 URL 的 Web 浏览器会显示预期的服务页面,如果我在我正在调用的接口内的服务器上放置一个断点,它会命中断点并返回预期的数据......但在客户端它又回来了出现以下错误:
接收到http://mydomain.com:8005/ 的 HTTP 响应时出错。这可能是由于服务端点绑定未使用 HTTP 协议。这也可能是由于服务器中止了 HTTP 请求上下文(可能是由于服务关闭)。有关详细信息,请参阅服务器日志。
更多线索:接口签名为:
IEnumerable<MyClass> GetThings(out string errMsg);
其中MyClass定义为Serializable,客户端和服务器的定义相同。
知道我需要翻转哪些秘密开关吗?
【问题讨论】:
-
您如何托管您的 WCF 服务?在 IIS 中? IIS 是否在那台机器上的 8005 端口上运行?另外:请向我们展示您的服务端配置 - 我们无法从这里读取您的想法(或硬盘).....
-
WCF 还需要有 具体类 来传递数据(因为它都需要 XML 序列化并且必须能够在 XML 模式中表示 - 接口不是' t 非常适合)。我相信它无法回传
IEnumerable<T>- 尝试使用List<T>或具体类型。运气好吗? -
@marc_s - 自托管,标记为
[Serializable]和[DataContract];所有标记为[DataMember]的公共成员。 -
@marc_s - 具体的类注释就是答案。请提出它作为我将其标记为正确的答案。谢谢!
-
完成 - 谢谢!很高兴我能提供帮助
标签: c# .net wcf exception-handling wcf-binding