SharePoint搜索服务返回SERVER_ERROR(SQLException)

时间:2011-01-20 17:08:49

标签: wcf sharepoint sharepoint-2007

我有一个简单的WCF Web服务客户端,它在/more/_vti_bin/search.asmx

上向Microsoft Search Server(包含在SharePoint 2007中)发送请求

请求已发送

<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>&lt;QueryPacket xmlns="urn:Microsoft.Search.Query" Revision="1000"&gt; &lt;Query&gt; &lt;Context&gt; &lt;QueryText language="fr-FR" type="STRING"&gt;foo bar&lt;/QueryText&gt;&lt;/Context&gt; &lt;/Query&gt; &lt;/QueryPacket&gt; </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>&lt;ResponsePacket xmlns="urn:Microsoft.Search.Response"&gt;&lt;Response domain=""&gt;&lt;Status&gt;ERROR_SERVER&lt;/Status&gt;&lt;DebugErrorMessage&gt;System.Data.SqlClient.SqlException&lt;/DebugErrorMessage&gt;&lt;/Response&gt;&lt;/ResponsePacket&gt;</QueryResult>
</QueryResponse></soap:Body></soap:Envelope>

3 个答案:

答案 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