1. 配置 IIS 绑定 IP地址
2. 在 SL 中引用 WebService
3. 在需要调用 WebService 的地方写下列代码:
WCF :
![]()
WCF
BasicHttpBinding basicBinding = new BasicHttpBinding();
CustomBinding binding = new CustomBinding(basicBinding);
BindingElement binaryElement = new BinaryMessageEncodingBindingElement();
// 删除原来 Elements 集合内的 TextMessageEncodingBindingElement
binding.Elements.Remove(binding.Elements[0]);
// 添加 BinaryMessageEncodingBindingElement
binding.Elements.Insert(0, binaryElement);
14
15
// wcf 地址
16
17
EndpointAddress endPoint = new EndpointAddress("http://172.168.1.100/DynamicInvokeWCF.Web/DynWCF.svc");
18
19
// 创建 wcf 客户端
20
DynWCFClient client = (DynWCFClient)Activator.CreateInstance(typeof(DynWCFClient), binding, endPoint);
client.DoWorkCompleted += new EventHandler<DoWorkCompletedEventArgs>(client_DoWorkCompleted);
client.DoWorkAsync();
传统 WebService:
![]()
WebService
1
BasicHttpBinding basicBinding = new BasicHttpBinding();
2
3
CustomBinding binding = new CustomBinding(basicBinding);
4
5
BindingElement binaryElement = new BinaryMessageEncodingBindingElement();
6
7
EndpointAddress endPoint = new EndpointAddress("http://172.168.1.100/DynamicInvokeWCF.Web/Asmx.asmx");
8
9
AsmxSoapClient client = (AsmxSoapClient)Activator.CreateInstance(typeof(AsmxSoapClient), binding, endPoint);
10
11
client.HelloWorldCompleted += new EventHandler<HelloWorldCompletedEventArgs>(client_HelloWorldCompleted);
12
13
client.HelloWorldAsync();
14
15
这样就可以动态的调用 webservice 了. 完全不需要 ServiceReferences.ClientConfig 文件了.