ошибка веб-сервиса: невозможно найти работу с параметрами - PullRequest
2 голосов
/ 16 ноября 2010

Я пытаюсь использовать .net webservice из холодного синтеза. Методы с простыми типами работают нормально. Но у меня проблемы с одним конкретным методом, который принимает массив байтов [] в качестве входных данных.

Ниже образец декларации 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>

Это всегда приводит к этой ошибке. Работа веб-службы ScanStream с параметрами не найдена .

Может кто-нибудь помочь мне с этим?

Ответы [ 2 ]

2 голосов
/ 16 ноября 2010

Кажется, что двоичные данные были представлены в виде строки bas64 в Coldfusion, тогда как byte[] предоставляется службой в виде массива XML (в байтах).если вы можете) принять строку, если веб-сервис не принадлежит вам, вы можете убедить владельцев предоставить другой метод, который принимает строку и использует Convert.FromBase64String для перехода на байтовый массив.

0 голосов
/ 16 ноября 2010

Веб-сервисы являются удаленными, а не общедоступными. Публичный позволяет доступ другим классам CF и страницам. Измените общедоступный на удаленный, и вы сможете «увидеть» свой веб-сервис.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...