最近公司在上線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的目錄移除。
三、
解決辦法: