關於如何在C#中使用Web參考來完成此操作有許多問題,但我知道該怎麼做。我試圖完成的是有一個可移植的dll,它使用了我可以在我的項目中引用的Java Web服務,而不是重複該功能。其中一件事情是,使用Web引用將請求的KeepAlive
設置爲true
。這對我正在開發的環境不起作用,它必須是false
。我對Web References做的事情是創建一個抽象類,繼承SoapHttpClientProtocol
並將Reference.cs更改爲從抽象類繼承。抽象類是這樣的:通過C#服務參考消費Java Web服務
[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 Web Service的服務引用來完成此操作。我在4.0(這是我正在使用的框架)中找到了簡化的serviceModel
部分的一些示例,但我需要指定url和超時。我不確定我是否可以使用簡化的serviceModel
或者是否需要使用完整的實現。我也不確定我是否可以使用服務參考。如果有人執行了這樣的操作,我只是尋找一點指導。
serviceModel
部分應該在我的配置文件中看起來像什麼?我需要能夠指定的3件事是URL,超時和保持活動。提前致謝。
我不得不增加readerQuotas的大小,但這個工作完美。非常感謝你的幫助! – 2011-03-01 20:36:26