我在调试时收到以下错误。
接收到http://localhost:50750/FIGService.svc的HTTP响应时发生错误。这可能是由于服务端点绑定不使用HTTP协议。这也可能是由于服务器中止HTTP请求上下文(可能是由于服务关闭)。有关详细信息,请参阅服务器日志。
现在我已经看过很多帖子,人们有这个错误,我已经把我的WCF减少到绝对准系统,我仍然得到错误,我正在运行以下内容:
Public Function TestXML(ByVal Username As String, ByVal Password As String, ByVal XML As String) As XmlDocument Implements FreshCloud.TestXML
Dim ReturnXMLDoc As New XmlDocument()
If ValidateLogin(Username, Password) <> False Then
ReturnString = "<FreshLead><Result><Message>Failed - XSD Validation</Message><DateTime>" & Date.Now.ToString & "</DateTime></Result></FreshLead>"
ReturnXMLDoc.LoadXml(ReturnString)
Return ReturnXMLDoc
End If
End Function
不要担心代码的无用性我只是复制和粘贴各种位来运行测试,这比使用带有按钮的简单测试应用运行:
Dim client As FreshCloudClient = New FreshCloudClient()
Dim strXML = client.TestXML("ABC", "BS", "Doesn't Matter")
Dim strTest = strXML
client.Close()
我收到错误只是返回上面的内容,请任何可以解决的问题都会感激这是一个很大的项目,我不得不陷入微软的模糊错误信息对学习者没有帮助。
干杯! :)
更新
在深入了解WCF的日志后,我偶然发现了这个:
类型'System.Xml.XmlDocument'是一种无效的集合类型,因为它没有带有'System.Object'类型参数的有效Add方法。
任何人都可以与我分享为什么WCF会抛出这个异常吗?
干杯。
更新2
好的,按照Lerners的建议,我现在得到了以下内容:
Public Function TestXML(ByVal Username As String,ByVal Password As String,ByVal XML As String)As XElement实现FreshCloud.TestXML
Dim ReturnXMLDoc
If ValidateLogin(Username, Password) <> False Then
ReturnString = "<FreshLead><Result><Message>Failed - XSD Validation</Message><DateTime>" & Date.Now.ToString & "</DateTime></Result></FreshLead>"
ReturnXMLDoc = XElement.Parse(ReturnString)
Return ReturnXMLDoc
End If
End Function
在我的客户端已经说过将响应放到变量和Console.WriteLine变量而它刚刚返回System.Object?
当我在WCF方面调试时,这应该返回返回XML中的XML,因为它在ReturnXMLDoc变量中显示了吗?
更新3
WORKING!
Lerner让我进入正确的球场,我只需要在我的“客户”申请表中更新服务定义。
干杯。
答案 0 :(得分:2)
返回XElement而不是XDocument,XElement是IXmlSerializable。
var xml = XElement.Parse(ReturnString);
return xml;