wcf webservice服务
2011-07-20 11:11
169 查看
1.建一个类库Constracts,在内写接口:
[ServiceContract(Name = "USService", Namespace = "http://www.new.net/")]
public interface IUSInfoServices
{
//获取高管信息
[OperationContract]
string GetLeaderInfo(string symbol);
}
2.再建一个类库Services,在里面写实现接口的方法:
1)添加引用,添加Constracts的引用
2)实现接口:
/// <summary>
/// 获取高管信息
/// </summary>
/// <param name="code">公司代码</param>
/// <returns>返回一个json对象</returns>
public string GetLeaderInfo(string symbol)
{
//获取高管信息的路径
XElement ele = XElement.Load("path.xml");
string path = ele.Element("leader").Value;
//首次读取缓存
string jsoncache = HttpRuntime.Cache.Get(symbol) as string;
if (jsoncache == null || jsoncache.Equals(""))
{
//读取数据
XmlDocument doc = new XmlDocument();
doc.Load(path);
string strSearch = "root/高管信息[@代码='" + symbol + "']";
XmlNode searchNode = doc.SelectSingleNode(strSearch);
XmlElement element = (XmlElement)searchNode;
xmltoJson json = new xmltoJson();
jsoncache = json.XmlToJSON(element);
//加缓存
HttpRuntime.Cache.Insert(symbol, jsoncache, null, DateTime.UtcNow.AddMinutes(2), System.Web.Caching.Cache.NoSlidingExpiration);
}
return jsoncache;
}
3.然后再建一个控制台应用程序Hosting:
1).添加引用,添加Constracts,services的引用
2).添加命名空间System.ServiceModel;
3). 在 static void Main(string[] args)
{
using (ServiceHost host = new ServiceHost(typeof(USInfoServices)))
{
host.Opened += delegate
{
Console.WriteLine("USInfoServices已经启动,按任意键终止服务!");
};
host.Open();
Console.Read();
}
}
4).在Hosting中添加一个配置文件App.config:
<?xml version="1.0"?>
<configuration>
<system.serviceModel>
<serviceHostingEnvironment aspNetCompatibilityEnabled="true"/><!--启用asp.net兼容模式-->
<behaviors>
<serviceBehaviors>
<behavior name="metadataBehavior">
<serviceMetadata httpGetEnabled="true" />
<serviceDebug includeExceptionDetailInFaults="true"/>
</behavior>
</serviceBehaviors>
</behaviors>
<services>
<service behaviorConfiguration="metadataBehavior" name="Genesysinfo.USServices.Services.USInfoServices">
<endpoint address="" binding="basicHttpBinding" contract="Genesysinfo.USServices.Contracts.IUSInfoServices" />
<endpoint address="" binding="netTcpBinding" contract="Genesysinfo.USServices.Contracts.IUSInfoServices" />
<host>
<baseAddresses>
<add baseAddress="http://127.0.0.1:8181/usinfoservices" />
<add baseAddress="net.tcp://127.0.0.1:8000/usinfoservices" />
</baseAddresses>
</host>
<endpoint address="mex" binding="mexTcpBinding" contract="IMetadataExchange" />
</service>
</services>
</system.serviceModel>
</configuration>
4.再添加一个控制台应用程序Client:
1).运行Hosting.exe。如果权限过低,就用以管理员的身份打开。
2).点击右键,添加服务器引用。地址就是app.config中的地址(即http://127.0.0.1:8181/usinfoservices).
3).在
static void Main(string[] args)
{
using (USServiceClient usserviceinfo = new USServiceClient("BasicHttpBinding_USService"))
{
string leader= usserviceinfo.GetLeaderInfo("A");
Console.Write(leader);
Console.Read();
}
}
4).运行Client。
[ServiceContract(Name = "USService", Namespace = "http://www.new.net/")]
public interface IUSInfoServices
{
//获取高管信息
[OperationContract]
string GetLeaderInfo(string symbol);
}
2.再建一个类库Services,在里面写实现接口的方法:
1)添加引用,添加Constracts的引用
2)实现接口:
/// <summary>
/// 获取高管信息
/// </summary>
/// <param name="code">公司代码</param>
/// <returns>返回一个json对象</returns>
public string GetLeaderInfo(string symbol)
{
//获取高管信息的路径
XElement ele = XElement.Load("path.xml");
string path = ele.Element("leader").Value;
//首次读取缓存
string jsoncache = HttpRuntime.Cache.Get(symbol) as string;
if (jsoncache == null || jsoncache.Equals(""))
{
//读取数据
XmlDocument doc = new XmlDocument();
doc.Load(path);
string strSearch = "root/高管信息[@代码='" + symbol + "']";
XmlNode searchNode = doc.SelectSingleNode(strSearch);
XmlElement element = (XmlElement)searchNode;
xmltoJson json = new xmltoJson();
jsoncache = json.XmlToJSON(element);
//加缓存
HttpRuntime.Cache.Insert(symbol, jsoncache, null, DateTime.UtcNow.AddMinutes(2), System.Web.Caching.Cache.NoSlidingExpiration);
}
return jsoncache;
}
3.然后再建一个控制台应用程序Hosting:
1).添加引用,添加Constracts,services的引用
2).添加命名空间System.ServiceModel;
3). 在 static void Main(string[] args)
{
using (ServiceHost host = new ServiceHost(typeof(USInfoServices)))
{
host.Opened += delegate
{
Console.WriteLine("USInfoServices已经启动,按任意键终止服务!");
};
host.Open();
Console.Read();
}
}
4).在Hosting中添加一个配置文件App.config:
<?xml version="1.0"?>
<configuration>
<system.serviceModel>
<serviceHostingEnvironment aspNetCompatibilityEnabled="true"/><!--启用asp.net兼容模式-->
<behaviors>
<serviceBehaviors>
<behavior name="metadataBehavior">
<serviceMetadata httpGetEnabled="true" />
<serviceDebug includeExceptionDetailInFaults="true"/>
</behavior>
</serviceBehaviors>
</behaviors>
<services>
<service behaviorConfiguration="metadataBehavior" name="Genesysinfo.USServices.Services.USInfoServices">
<endpoint address="" binding="basicHttpBinding" contract="Genesysinfo.USServices.Contracts.IUSInfoServices" />
<endpoint address="" binding="netTcpBinding" contract="Genesysinfo.USServices.Contracts.IUSInfoServices" />
<host>
<baseAddresses>
<add baseAddress="http://127.0.0.1:8181/usinfoservices" />
<add baseAddress="net.tcp://127.0.0.1:8000/usinfoservices" />
</baseAddresses>
</host>
<endpoint address="mex" binding="mexTcpBinding" contract="IMetadataExchange" />
</service>
</services>
</system.serviceModel>
</configuration>
4.再添加一个控制台应用程序Client:
1).运行Hosting.exe。如果权限过低,就用以管理员的身份打开。
2).点击右键,添加服务器引用。地址就是app.config中的地址(即http://127.0.0.1:8181/usinfoservices).
3).在
static void Main(string[] args)
{
using (USServiceClient usserviceinfo = new USServiceClient("BasicHttpBinding_USService"))
{
string leader= usserviceinfo.GetLeaderInfo("A");
Console.Write(leader);
Console.Read();
}
}
4).运行Client。
相关文章推荐
- asp调用wcf服务、webservice
- VS2008非托管C++调用wcf(WebService)服务
- IOS请求WebService/WCF服务的方法
- 【ITOO】WCF——如何创建WebService和WCF服务
- WCF或webservice跨域 这可能是由于试图以跨域方式访问服务而又没有正确的跨域策略
- VS2008非托管C++调用wcf(WebService)服务
- 动态调用webservice及WCF服务
- 如何用WcfTestClient.exe测试C#写的WebService服务
- 不用webservice wcf提供服务,用Rest更轻量
- WCF中的服务和ASP.NET AJAX中的WebService
- wcf 中客户端调用之死 感悟 wcf与原来的webservice2.0 的客户端调用区别(wcf调用完不关闭的话那就把web服务搞死了)
- Fiddler捕捉ASP.NET WebSite调用WebService、WCF服务
- 有关WebService服务和WCF服务的学习
- 使用WebService的方式调用部署在服务器的Wcf服务
- WCF 服务应用程序与 服务库之间的区别
- WCF 面向服务的SOAP消息
- Android之通过向WebService服务器发送XML数据获取相关服务
- 开发基于ASP.NET WebService的图片验证码服务
- 关于VS2008不能调试使用WSDualHttpBinding协议WCF服务的问题
- WCF RIA 服务 (十八)-- 共享代码 1