Интеграция с bpm'online при помощи конфигурационного сервиса
Здравствуйте.
На сайте академии сказано что можно подцепиться к bpm при помощи аж 5 способов.
Я пробую способ интеграции при помощи конфигурационного сервиса. Веб служба DataService и протокол OData расписаны достаточно подробно, а вот конфигурационный сервис описан несколькими строками.
Я проделал следующую работу. Но в итоге ничего не заработало. Если кто-то разбирается в веб сервисах подскажите как решить проблему. Весь код и пример в ссылке.
Это исходный код Веб сервиса на c#
namespace Terrasoft.Configuration { using System.ServiceModel; using System.ServiceModel.Web; using System.ServiceModel.Activation; [ServiceContract] [AspNetCompatibilityRequirements (RequirementsMode = AspNetCompatibilityRequirementsMode.Required)] //********* Класс "KotService" ************ public class KotService { [OperationContract] [WebInvoke(Method = "POST", RequestFormat = WebMessageFormat.Json, BodyStyle = WebMessageBodyStyle.Wrapped, ResponseFormat = WebMessageFormat.Json)] //********* Функция "Func1" ************ public string Func1(string inputParam) { var result = inputParam + " + something new as string"; return result; } } }
Здесь я пытаюсь вызвать метод Func1 во внешнем приложении (WinFormsApp)
using System; using System.Windows.Forms; using TESTwebservice.KotServiceRef; namespace TESTwebservice { public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void button1_Click(object sender, EventArgs e) { KotServiceClient myservClient = new KotServiceClient(); string input = textBox1.Text; string output = string.Empty; myservClient.Func1(input); textBox2.Text = output; myservClient.Close(); } } }
Скриншот ошибки
Очень надеюсь на вашу помощь.
Нравится
Добрый день, Константин!
Тут обсуждалась похожая проблема: https://community.terrasoft.ru/questions/polucit-wsdl-konfiguracionnogo…
Мне кажется это должно помочь: Есть утилита wsdl.exe
C:\Program Files (x86)\Microsoft SDKs\Windows\v10.0A\bin\NETFX 4.6 Tools\wsdl.exe
С ее помощью можно сгенерировать прокси- классы из сохраненного локально WSDL- файла. Далее скомпилировать эти классы в сборку и включить ссылку на сборку в проект консольного клиента, ну а дальше вызывать методы Web- сервиса из клиента, используя прокси- классы.
Разобрался я с вопросом. wsdl тут не помог. я пробовал.
Если кому надо ловите код как вызвать веб сервис:
private void button1_Click(object sender, EventArgs e) { string input = textBox1.Text; string output = string.Empty; bool isAuth = TryLogin("Supervisor", "Supervisor"); var myRequest = HttpWebRequest.Create("http://localhost:8080/0/ServiceModel/KotService.svc/Func1") as HttpWebRequest; myRequest.Method = "GET"; myRequest.ContentType = "application/json"; ResponseStatus status = null; using (var response = (HttpWebResponse)myRequest.GetResponse()) { using (var reader = new StreamReader(response.GetResponseStream())) { input = reader.ReadToEnd(); status = new System.Web.Script.Serialization.JavaScriptSerializer().Deserialize<ResponseStatus>(input); } } textBox2.Text = status.Message; }