我有一个简单的WCF Web服务客户端,它在/more/_vti_bin/search.asmx
请求已发送
<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
<s:Body xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<Query xmlns="urn:Microsoft.Search">
<queryXml><QueryPacket xmlns="urn:Microsoft.Search.Query" Revision="1000"> <Query> <Context> <QueryText language="fr-FR" type="STRING">foo bar</QueryText></Context> </Query> </QueryPacket> </queryXml>
</Query></s:Body></s:Envelope>
但响应显示SQLException错误
<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<soap:Body>
<QueryResponse xmlns="urn:Microsoft.Search">
<QueryResult><ResponsePacket xmlns="urn:Microsoft.Search.Response"><Response domain=""><Status>ERROR_SERVER</Status><DebugErrorMessage>System.Data.SqlClient.SqlException</DebugErrorMessage></Response></ResponsePacket></QueryResult>
</QueryResponse></soap:Body></soap:Envelope>
答案 0 :(得分:0)
它声明有一个sql异常,如果发生任何错误,你能检查你的sql机器吗?
答案 1 :(得分:0)
您的请求存在问题。使用此tool
测试您的搜索服务答案 2 :(得分:0)
经过一些进一步的分析,我已经明白问题在于Soap查询不是以XML声明开头的。
<?xml version="1.0">
这完全可以并且尊重标准,但SharePoint并不喜欢这样。
问题变为:How to force the WCF client to starts with an XML declaration。