1、创建WEBAPI
1 using Dapper; 2 using MesErp.Models; 3 using Microsoft.AspNetCore.Mvc; 4 using Microsoft.Extensions.Configuration; 5 using Newtonsoft.Json; 6 using System; 7 using System.Collections.Generic; 8 using System.Data; 9 using System.Data.Common; 10 using System.Data.SqlClient; 11 using System.Linq; 12 using System.Runtime.Intrinsics.Arm; 13 using System.Security.Cryptography; 14 using System.Threading.Tasks; 15 using System.Xml.Linq; 16 namespace MesErp.Controllers 17 { 18 /// <summary> 19 /// ERP-MES基础数据同步" 20 /// </summary> 21 [Route("[controller]")] 22 [ApiController] 23 public class ErpMesBasicController : ControllerBase 24 { 25 private string ConnectionStr() 26 { 27 var appSettingsJson = AppSettingsJson.GetAppSettings(); 28 string connectionString2 = appSettingsJson.GetSection("ConnectionStrings")["DefaultConnection"];//链接数据库字符串 29 return connectionString2; 30 } 31 /// <summary> 32 /// 库存组织新增/更新 33 /// </summary> 34 /// <returns></returns> 35 [HttpPost("AddWorkcenter")] 36 public async Task< ErpMesRts> AddWorkcenter([FromBody] WorkcenterModel workcenters) 37 { 38 int rst = -1; 39 ErpMesRts rstsate = new ErpMesRts(); 40 41 string connectionString = ConnectionStr();//链接字符串 42 DynamicParameters paras = new DynamicParameters(); 43 string Ctworkter= JsonConvert.SerializeObject(workcenters); 44 paras.Add("@JosnName", Ctworkter); 45 // paras.Add("@sum", 0, DbType.Int32, ParameterDirection.Output);// 指明是输出参数,这里为指明参数类型大小 46 using (IDbConnection connection = new SqlConnection(connectionString)) 47 { 48 try 49 { 50 rst = await connection.ExecuteAsync("proc_ERP_MesAddWorkcenter", paras, commandType: CommandType.StoredProcedure); 51 } 52 catch(Exception e) 53 { 54 rstsate.msg=e.Message.ToString()+"数据库异常"; 55 56 } 57 // 执行存储过程 58 // rst = await connection.ExecuteAsync("proc_AddSysUser01", paras , commandType: CommandType.StoredProcedure); 59 60 } 61 if (rst > 0) 62 { 63 rstsate.status = 200; 64 rstsate.msg = "成功"; 65 } 66 67 68 //"{status: = " + code + ", msg = " + msg + ", data = " + null "}"; 69 return rstsate; 70 //rst 返回1为成功 71 // return Json(new { code = 200, msg = "ok" }); 72 } 73 /// <summary> 74 /// 人员主数据新增/更新 75 /// </summary> 76 /// <returns></returns> 77 [HttpPost("AddPersonInfo")] 78 public async Task<ErpMesRts> AddPersonInfo([FromBody] PersonInfoModel personInfos) 79 { 80 int rst = -1; 81 ErpMesRts rstsate = new ErpMesRts(); 82 83 string connectionString = ConnectionStr();//链接字符串 84 DynamicParameters paras = new DynamicParameters(); 85 string Ctworkter = JsonConvert.SerializeObject(personInfos); 86 paras.Add("@JosnName", Ctworkter); 87 // paras.Add("@sum", 0, DbType.Int32, ParameterDirection.Output);// 指明是输出参数,这里为指明参数类型大小 88 using (IDbConnection connection = new SqlConnection(connectionString)) 89 { 90 try 91 { 92 rst = await connection.ExecuteAsync("proc_ERP_MesAddPersonInfo", paras, commandType: CommandType.StoredProcedure); 93 } 94 catch (Exception e) 95 { 96 rstsate.msg = e.Message.ToString() + "数据库异常"; 97 98 } 99 // 执行存储过程 100 // rst = await connection.ExecuteAsync("proc_AddSysUser01", paras , commandType: CommandType.StoredProcedure); 101 102 } 103 if (rst > 0) 104 { 105 rstsate.status = 200; 106 rstsate.msg = "成功"; 107 } 108 109 110 //"{status: = " + code + ", msg = " + msg + ", data = " + null "}"; 111 return rstsate; 112 //rst 返回1为成功 113 // return Json(new { code = 200, msg = "ok" }); 114 } 115 /// <summary> 116 /// 业务组新增/更新 117 /// </summary> 118 /// <returns></returns> 119 [HttpPost("AddBusinessGroup")] 120 public async Task<ErpMesRts> AddBusinessGroup([FromBody] BusinessGroupModel businessGroups) 121 { 122 int rst = -1; 123 ErpMesRts rstsate = new ErpMesRts(); 124 125 string connectionString = ConnectionStr();//链接字符串 126 DynamicParameters paras = new DynamicParameters(); 127 string Ctworkter = JsonConvert.SerializeObject(businessGroups); 128 paras.Add("@JosnName", Ctworkter); 129 // paras.Add("@sum", 0, DbType.Int32, ParameterDirection.Output);// 指明是输出参数,这里为指明参数类型大小 130 using (IDbConnection connection = new SqlConnection(connectionString)) 131 { 132 try 133 { 134 rst = await connection.ExecuteAsync("proc_ERP_MesAddBusinessGroup", paras, commandType: CommandType.StoredProcedure); 135 } 136 catch (Exception e) 137 { 138 rstsate.msg = e.Message.ToString() + "数据库异常"; 139 140 } 141 // 执行存储过程 142 // rst = await connection.ExecuteAsync("proc_AddSysUser01", paras , commandType: CommandType.StoredProcedure); 143 144 } 145 if (rst > 0) 146 { 147 rstsate.status = 200; 148 rstsate.msg = "成功"; 149 } 150 151 152 //"{status: = " + code + ", msg = " + msg + ", data = " + null "}"; 153 return rstsate; 154 //rst 返回1为成功 155 // return Json(new { code = 200, msg = "ok" }); 156 } 157 /// <summary> 158 /// 组织主数据/部门主数据新增/更新 159 /// </summary> 160 /// <returns></returns> 161 [HttpPost("AddDivision")] 162 public async Task<ErpMesRts> AddDivision([FromBody] DivisionModel divisions) 163 { 164 int rst = -1; 165 ErpMesRts rstsate = new ErpMesRts(); 166 167 string connectionString = ConnectionStr();//链接字符串 168 DynamicParameters paras = new DynamicParameters(); 169 string Ctworkter = JsonConvert.SerializeObject(divisions); 170 paras.Add("@JosnName", Ctworkter); 171 // paras.Add("@sum", 0, DbType.Int32, ParameterDirection.Output);// 指明是输出参数,这里为指明参数类型大小 172 using (IDbConnection connection = new SqlConnection(connectionString)) 173 { 174 try 175 { 176 rst = await connection.ExecuteAsync("proc_ERP_MesAddDivision", paras, commandType: CommandType.StoredProcedure); 177 } 178 catch (Exception e) 179 { 180 rstsate.msg = e.Message.ToString() + "数据库异常"; 181 182 } 183 // 执行存储过程 184 // rst = await connection.ExecuteAsync("proc_AddSysUser01", paras , commandType: CommandType.StoredProcedure); 185 186 } 187 if (rst > 0) 188 { 189 rstsate.status = 200; 190 rstsate.msg = "成功"; 191 } 192 193 194 //"{status: = " + code + ", msg = " + msg + ", data = " + null "}"; 195 return rstsate; 196 //rst 返回1为成功 197 // return Json(new { code = 200, msg = "ok" }); 198 } 199 /// <summary> 200 /// 物料类型新增/更新 201 /// </summary> 202 /// <returns></returns> 203 [HttpPost("AddProductType")] 204 public async Task<ErpMesRts> AddProductType([FromBody] ProductTypeModel productTypes) 205 { 206 int rst = -1; 207 ErpMesRts rstsate = new ErpMesRts(); 208 209 string connectionString = ConnectionStr();//链接字符串 210 DynamicParameters paras = new DynamicParameters(); 211 string Ctworkter = JsonConvert.SerializeObject(productTypes); 212 paras.Add("@JosnName", Ctworkter); 213 // paras.Add("@sum", 0, DbType.Int32, ParameterDirection.Output);// 指明是输出参数,这里为指明参数类型大小 214 using (IDbConnection connection = new SqlConnection(connectionString)) 215 { 216 try 217 { 218 rst = await connection.ExecuteAsync("proc_ERP_MesAddProductType", paras, commandType: CommandType.StoredProcedure); 219 } 220 catch (Exception e) 221 { 222 rstsate.msg = e.Message.ToString() + "数据库异常"; 223 224 } 225 // 执行存储过程 226 // rst = await connection.ExecuteAsync("proc_AddSysUser01", paras , commandType: CommandType.StoredProcedure); 227 228 } 229 if (rst > 0) 230 { 231 rstsate.status = 200; 232 rstsate.msg = "成功"; 233 } 234 235 236 //"{status: = " + code + ", msg = " + msg + ", data = " + null "}"; 237 return rstsate; 238 //rst 返回1为成功 239 // return Json(new { code = 200, msg = "ok" }); 240 } 241 /// <summary> 242 /// 物料主数据新增/更新 243 /// </summary> 244 /// <returns></returns> 245 [HttpPost("AddProduct")] 246 public async Task<ErpMesRts> AddProduct([FromBody] ProductModel products) 247 { 248 int rst = -1; 249 ErpMesRts rstsate = new ErpMesRts(); 250 251 string connectionString = ConnectionStr();//链接字符串 252 DynamicParameters paras = new DynamicParameters(); 253 string Ctworkter = JsonConvert.SerializeObject(products); 254 paras.Add("@JosnName", Ctworkter); 255 // paras.Add("@sum", 0, DbType.Int32, ParameterDirection.Output);// 指明是输出参数,这里为指明参数类型大小 256 using (IDbConnection connection = new SqlConnection(connectionString)) 257 { 258 try 259 { 260 rst = await connection.ExecuteAsync("proc_ERP_MesAddProduct", paras, commandType: CommandType.StoredProcedure); 261 } 262 catch (Exception e) 263 { 264 rstsate.msg = e.Message.ToString() + "数据库异常"; 265 266 } 267 // 执行存储过程 268 // rst = await connection.ExecuteAsync("proc_AddSysUser01", paras , commandType: CommandType.StoredProcedure); 269 270 } 271 if (rst > 0) 272 { 273 rstsate.status = 200; 274 rstsate.msg = "成功"; 275 } 276 277 278 //"{status: = " + code + ", msg = " + msg + ", data = " + null "}"; 279 return rstsate; 280 //rst 返回1为成功 281 // return Json(new { code = 200, msg = "ok" }); 282 } 283 284 285 286 287 288 /* 289 /// <summary> 290 /// 库存组织更新 291 /// </summary> 292 /// <param name="testModel">接收对象</param> 293 /// <returns></returns> 294 [HttpPost("UpdatWorkcenter")] 295 public async Task<string> updateBlog([FromBody] WorkcenterModel testModel) 296 { 297 //这个就代表的你第二层,懂弄?很多层都是一样的 298 299 300 int rst = -1; 301 int code = 500; 302 string msg = "失败"; 303 string connectionString = ConnectionStr();//链接字符串 304 using (IDbConnection connection = new SqlConnection(connectionString)) 305 { try 306 { // 执行存储过程 307 rst = await connection.ExecuteAsync(" UPDATE Workcenter SET WorkcenterDescription=isnull(@WorkcenterDescription,WorkcenterDescription),IsHB=@IsHB, SiteId=@SiteId,SiteName = @SiteName,IsClosed = @IsClosed WHERE WorkcenterName = @WorkcenterName ", testModel.workcenters); 308 } 309 catch (Exception e) 310 { 311 msg = e.Message.ToString() + "数据库异常"; 312 313 } 314 } 315 if (rst > 0) 316 { 317 code = 200; 318 msg = "成功"; 319 } 320 return "{code = " + code + ", msg = " + msg + "}"; 321 } 322 323 */ 324 325 } 326 }
用restful 风格创建接口
链接字符串
2、webapi发布
发布路径
发布时选择空文件
选择路径
发布完成示例图
注意编辑接口是会勾选XML输出
这个路径打包编译时是不会自动编译过去的
3、发布到IIS上
创建应用池时(创建无托管、集成)
部署服务器环境需要安装三个文件
https://dotnet.microsoft.com/zh-cn/download/dotnet/5.0环境下载、也可参照其他链接https://blog.csdn.net/xiaochenXIHUA/article/details/118027591
环境安装后需要将文件发布IIS上
同时配置将XML文件考到发布文件里面
配制web.config加下面节点
配置代码
1 <?xml version="1.0" encoding="utf-8"?> 2 <configuration> 3 <location path="." inheritInChildApplications="false"> 4 <system.webServer> 5 <handlers> 6 <add name="aspNetCore" path="*" verb="*" modules="AspNetCoreModuleV2" resourceType="Unspecified" /> 7 </handlers> 8 <aspNetCore processPath="dotnet" arguments=".\MesErp.dll" stdoutLogEnabled="false" stdoutLogFile=".\logs\stdout" hostingModel="inprocess" > 9 <environmentVariables> 10 <environmentVariable name="ASPNETCORE_ENVIRONMENT" value="Development" /> 11 </environmentVariables> 12 </aspNetCore> 13 </system.webServer> 14 </location> 15 </configuration> 16 <!--ProjectGuid: f7e462b4-210d-455c-b73f-b1a6fcbfb0a8-->
运行webapi