我有一個SSRS 2005報告,我想使用web服務來檢索一些數據。這個web服務將會有幾個參數。SSRS 2005 - XML webservice數據集 - 參數沒有傳遞給web服務
作爲一個測試,我建立了一個非常簡單的演示Web服務項目在我的本地環境:
[WebService(Namespace = "http://tempuri.org/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
public class Service : System.Web.Services.WebService
{
public Service() {}
[WebMethod]
public int DivideByTwo(int numberIn) {
return numberIn/2;
}
}
我的測試報告則具有使用XML數據源的數據集,與web服務中(本地主機)網址連接字符串。
在數據集我有以下的查詢字符串,基於MS文檔(http://msdn.microsoft.com/en-us/library/aa964129(SQL.90).aspx):
<Query>
<SoapAction>http://tempuri.org/DivideByTwo</SoapAction>
<Method Namespace="http://tempuri.org/" Name="DivideByTwo" />
<Parameters>
<Parameter Name="NumberIn">
<DefaultValue>100</DefaultValue>
</Parameter>
</Parameters>
<ElementPath IgnoreNamespaces="True">*</ElementPath>
</Query>
我遇到的問題是,儘管Web服務被觸發,參數不傳遞給webservice,因此返回值始終爲0.我調試了webservice並在DivideByTwo()方法中放置了一個斷點,並且當從報告觸發web服務調用並且命中斷點時,numberIn值無論我放置在查詢XML的元素中,它始終爲0。
我也試過在數據集對話框的「參數」選項卡中指定「NumberIn」參數(使用提供的值)並從查詢XML中刪除元素 - 結果相同。
我在網上發現了一些概述相同問題的帖子,但似乎無法找到解決方案,並且在過去的幾個小時裏一直在撕掉我的頭髮。任何幫助將非常感激。
你有一個小的錯字。由於參數區分大小寫,因此您的查詢應該是。我有一個類似的問題,參數沒有通過與所有案件正確..所以不知道這是問題,但值得一試。 –
DavveK
2011-08-24 14:23:05
謝謝DaweK。我在一段時間前問過這個問題,但我懷疑這是問題,因爲問題似乎在一段時間後「消失」,我無法確定我爲解決問題所做的工作。 – Michael 2011-10-12 06:46:47