2010-11-16 48 views
2

我試圖從冷聚變中使用.NET Web服務。簡單類型的方法工作正常。但我有一個接受byte []數組作爲輸入的特定方法的問題。Web服務錯誤:無法找到參數操作

下面的示例中的WebMethod聲明

[WebMethod] 
    public AVStatus ScanStream(byte[] fileObject) 
    { 
       // code 
    } 

和冷聚變代碼消費這項服務是

<cffile action="readBinary" file="#FileName#" variable="filedata"> 
    <cfset b64file = #toBase64(filedata)#> 
    <cfinvoke webservice = "http://xxx/scanservice.asmx?wsdl" 
     method = "ScanStream"  
     returnVariable = "result"> 
      <cfinvokeargument name="fileObject" value="#b64file#" /> 

    </cfinvoke> 

這總是導致這個錯誤Web服務操作ScanStream與參數無法找到

有人可以幫我解決這個問題嗎?

回答

2

看來,二進制數據已經被公開爲在ColdFusion bas64串而byte[]由服務公開爲XML陣列(字節)。

更改ScanStream(如果可以)接受字符串,如果Web服務不是您的,您可以說服所有者提供另一種接受字符串的方法,並使用Convert.FromBase64String更改爲字節數組。

+0

感謝哥們...那就是確切的問題.... :) – RameshVel 2010-11-17 05:39:26

+0

太棒了!樂於幫助。 – Aliostad 2010-11-17 08:57:14

0

Webservices是遠程的,不公開的。公開允許其他CF類和頁面訪問。將public改爲remote,你應該能夠「看到」你的webservice。

相關問題