8,734
社区成员
发帖
与我相关
我的任务
分享
public static T Create()
{
BasicHttpBinding basicHttpBinding = new BasicHttpBinding(BasicHttpSecurityMode.None);
basicHttpBinding.MaxReceivedMessageSize = Int32.MaxValue;
basicHttpBinding.MaxBufferSize = Int32.MaxValue;
basicHttpBinding.ReceiveTimeout = TimeSpan.FromMinutes(2);
basicHttpBinding.OpenTimeout = TimeSpan.FromMinutes(2);
basicHttpBinding.SendTimeout = TimeSpan.FromMinutes(2);
basicHttpBinding.CloseTimeout = TimeSpan.FromMinutes(1);
return (T)Activator.CreateInstance(_ServiceType, basicHttpBinding, EndPointAddress);
}
public class Class1
{
// 使用例子:
// Private _wcf As New ServiceReferenceWCF.ServiceWCFClient
// use_optical_line_wcf(_wcf, "../Services/ServiceOpticalLine.svc") '
public static EndpointAddress getEndpointAddress(string relative_uri)
{
return new EndpointAddress(new Uri(Application.Current.Host.Source, relative_uri));
}
public static void use_wcf(ServiceReferenceWCF.ServiceWCFClient wcf_client_instance, string end_point_address)
{
EndpointAddress _end_point_address = default(EndpointAddress);
_end_point_address = ClassesOptialLineShared.getEndpointAddress(end_point_address);
// _end_point_address = ClassesOptialLineShared.getEndpointAddress("../Services/ServiceOpticalLine.svc")
#if TRACE
// 调用wcf超时的解决办法
wcf_client_instance.Endpoint.Binding.OpenTimeout = new TimeSpan(0, 1, 0);
wcf_client_instance.Endpoint.Binding.CloseTimeout = new TimeSpan(0, 1, 0);
wcf_client_instance.Endpoint.Binding.SendTimeout = new TimeSpan(0, 18, 0);
wcf_client_instance.Endpoint.Binding.ReceiveTimeout = new TimeSpan(0, 18, 0);
#elif
wcf_client_instance.Endpoint.Binding.OpenTimeout = new TimeSpan(0, 1, 0);
wcf_client_instance.Endpoint.Binding.CloseTimeout = new TimeSpan(0, 1, 0);
wcf_client_instance.Endpoint.Binding.SendTimeout = new TimeSpan(0, 5, 0);
wcf_client_instance.Endpoint.Binding.ReceiveTimeout = new TimeSpan(0, 5, 0);
#endif
wcf_client_instance.Endpoint.Address = _end_point_address;
}
}