Есть много вопросов о том, как сделать это, используя Web Reference в C #, но я знаю, как это сделать.То, что я пытаюсь сделать, - это иметь переносимый dll, который использует веб-службы Java, на которые я могу ссылаться в своих проектах, вместо дублирования функциональности.Одна из вещей заключается в том, что для веб-ссылок KeepAlive
запроса устанавливается на true
.Это не работает для среды, в которой я работаю, и должно быть false
.Что я сделал с Web References, так это создал абстрактный класс, который наследовал SoapHttpClientProtocol
, и изменил Reference.cs, чтобы он наследовал от абстрактного класса.Абстрактный класс выглядел так:
[System.Web.Services.WebServiceBinding(Name = "JavaWebReferenceProxy")]
public abstract class JavaWebReferenceProxy : SoapHttpClientProtocol
{
public JavaWebReferenceProxy()
{
base.Timeout = Settings.Instance.SoapTimeout;
}
protected override WebRequest GetWebRequest(Uri uri)
{
WebRequest rq = base.GetWebRequest(uri);
((HttpWebRequest)rq).KeepAlive = Settings.Instance.SoapKeepAlive;
return rq;
}
}
Это позволило мне переопределить GetWebRequest
и конструктор для установки значений, которые были в web.config.Мне интересно, как я могу сделать это с помощью ссылки на службу веб-службы Java.Я нашел несколько примеров для упрощенного раздела serviceModel
в 4.0 (который я использую), но мне нужно также указать URL-адрес и время ожидания.Я не уверен, могу ли я использовать упрощенный serviceModel
или мне нужно использовать полную реализацию.Я также не уверен, смогу ли я вообще использовать Справочник по обслуживанию.Я просто ищу небольшое руководство, если кто-нибудь реализовал что-то подобное.
Как должен выглядеть раздел serviceModel
в моем конфигурационном файле?3 вещи, которые мне нужно уметь указать, это URL, время ожидания и поддержка активности.Заранее спасибо.