最近公司在上线CRM系统,用户方希望在客户现场扫描二维码等信息可以获取对应的生产信息,CRM顾问方团队希望MES小组这边提供接口返回数据给他们。经过讨论后,采用WebApi的提供数据接口,为此,我准备搭建一个项目平台。
补充:之前在CSDN上传的源码有不足之处,传参违背了WEBAPI设计初衷,在webAPI中route规则修改为 [Route("api/GetProduct02/{boxNO}")],调用的时候之前采用了WebForm格式的?形式后接参数,这里可以改成直接为/参数内容。eg:Uri _address = new Uri(_baseAddress, "/api/GetProduct02/" + boxno);
step1:
使用visual studio 2013 创建一个空的WebAPI
点击确定,完成项目新建向导。
Step 2
WebApiConfig 里面添加如下代码,
public static void Register(HttpConfiguration config) { // Web API 配置和服务 var json = config.Formatters.JsonFormatter; // 解决json序列化时的循环引用问题 json.SerializerSettings.ReferenceLoopHandling = Newtonsoft.Json.ReferenceLoopHandling.Ignore; // 移除XML序列化器,剩下Json config.Formatters.Remove(config.Formatters.XmlFormatter); var jsonFormatter = config.Formatters.OfType<System.Net.Http.Formatting.JsonMediaTypeFormatter>().First(); jsonFormatter.SerializerSettings.ContractResolver = new Newtonsoft.Json.Serialization.CamelCasePropertyNamesContractResolver(); // Web API 路由 config.MapHttpAttributeRoutes(); config.Routes.MapHttpRoute( name: "DefaultApi", routeTemplate: "api/{controller}/{action}/{id}", defaults: new { id = RouteParameter.Optional } ); }
与Oracle数据库连接采用System.Data.OracleClient,由于该DLL不支持.net framwork 4.5 ,所以我在该解决方案下,增加了一个项目解决方案,采用.net framwork 4.0,
并在webapi主项目中引用该项目。代码http://download.csdn.net/download/gudaozi712m/10231426
step 3 发布项目
选择自定义,输入自定义名称
选择文件系统
目标位置即为项目发布后的文件位置,
step 4 部署到IIS
选择网站->添加网站,如下,输入相应的信息。
下面这一步非常重要
使用SOAPUI测试部署的程序,调用方法,弹出如下报错
解决办法是:
再重新启动网站,使用SOAPUI成功调用,
附 调用时可能会报的错误及解决办法
一、
解决办法:
二、这个错误出现的很偶然,折腾了一会,网上很多人都没说到点子上,这个是因为本机电脑装了oracle server端,而我又额外的装了客户端,导致出现ORA-12557错误,j
解决办法是:检查环境变量path,将属于client的目录移除。
三、
解决办法: