【发布时间】:2011-07-06 16:07:44
【问题描述】:
关于如何在 C# 中使用 Web 引用来执行此操作有很多问题,但我知道如何执行此操作。我想要完成的是拥有一个可移植的 dll,它使用我可以在我的项目中引用的 Java Web 服务,而不是复制功能。其中一件事是,对于 Web 引用,请求的 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 Web 服务的服务引用来做到这一点。我在 4.0(这是我正在使用的框架)中找到了简化的 serviceModel 部分的一些示例,但我还需要指定 url 和超时。我不确定是否可以使用简化的 serviceModel 或者是否需要使用完整的实现。我也不确定我是否可以使用服务参考。如果有人实施了这样的事情,我只是在寻找一些指导。
serviceModel 部分在我的配置文件中应该是什么样子?我需要指定的三件事是 URL、超时和保持活动。提前致谢。
【问题讨论】:
标签: c# java web-services web-config wcf-binding