Интеграция с 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;
}