代码之家  ›  专栏  ›  技术社区  ›  RameshVel

web服务错误:找不到带参数的操作

  •  2
  • RameshVel  · 技术社区  · 14 年前

    我正在尝试使用cold fusion中的.net Web服务。方法有简单的类型工作良好。但是有一个方法接受byte[]数组作为输入,我遇到了问题。

    下面是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 回复  |  直到 14 年前
        1
  •  2
  •   Aliostad    14 年前

    似乎二进制数据已经暴露为 bas64 字符串在coldfusion while中 byte[] 被服务公开为XML数组(字节)。

    更改 ScanStream (如果可以)接受字符串,如果web服务不是您的,您可以说服所有者提供另一个接受字符串并使用 Convert.FromBase64String 更改为字节数组。

        2
  •  0
  •   Ben Doom    14 年前

    Webservices是远程的,不是公共的。Public允许其他CF类和页访问。将public更改为remote,您应该能够“看到”您的webservice。