WEB API .NET環境發佈

来源:https://www.cnblogs.com/donywc/archive/2023/05/09/17384647.html
-Advertisement-
Play Games

1、創建WEBAPI 1 using Dapper; 2 using MesErp.Models; 3 using Microsoft.AspNetCore.Mvc; 4 using Microsoft.Extensions.Configuration; 5 using Newtonsoft.Jso ...


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 }
View Code

用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-->
View Code

運行webapi

 


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 大數據時代,各行各業對數據採集的需求日益增多,網路爬蟲的運用也更為廣泛,越來越多的人開始學習網路爬蟲這項技術,K哥爬蟲此前已經推出不少爬蟲進階、逆向相關文章,為實現從易到難全方位覆蓋,特設【0基礎學爬蟲】專欄,幫助小白快速入門爬蟲,本期為自動化工具 Pyppeteer 的使用。 概述 前兩期文章中已 ...
  • make 備忘清單 make是一條電腦指令,是在安裝有GNU Make的電腦上的可執行指令。該指令是讀入一個名為makefile [1] 的文件,然後執行這個文件中指定的指令。 Make可以從一個名為makefile的文件中獲得如何構建你所寫程式的依賴關係,Makefile中列出了每個目標文件以 ...
  • Markdown 備忘清單 Markdown 是一種輕量級標記語言,創始人為約翰·格魯伯(John Gruber)。 它允許人們使用易讀易寫的純文本格式編寫文檔,然後轉換成有效的 XHTML(或者HTML)文檔。這種語言吸收了很多在電子郵件中已有的純文本標記的特性。 由於 Markdown 的輕量化 ...
  • Applicationcontext的功能拓展主要來自於不屬於beanfactory的介面,主要包括四個介面 Messagesource :國際化 ResourcePatternResolver :獲取資源 ApplicationEventPublisher:發佈事件 EnvironmentCapa ...
  • Listener監聽器,實現一個顯示線上用戶人數 每博一文案 關於後半身,脾氣越溫,福報越深。 師傅說:惜命最好的方式不是養生,而是管好自己的情緒。 壞毛病都是慣出來的,但好脾氣都是磨出來的,與人生氣,傷的是和氣,與自己生氣,傷的是身體。 佛說:人有五毒心,貪嗔痴慢疑,其中一時的嗔念起,百萬葉障深, ...
  • GMP調度場景 場景1 P擁有G1,M1獲取P後開始運行G1,G1使用 go func 創建G2,為了局部性G2優先加入到P1的本地隊列 場景2 G1運行完成後(函數:goexit),M上運行的goroutine切換為G0,G0負責調度時協程的切換(函數:schedule)。從P的本地隊列取G2,從 ...
  • Legends-Of-Heroes 一個LOL風格的球球大作戰游戲,基於ET7.2,使用狀態同步 Main 基於C#雙端框架[ET7.2],同步到ET主幹詳情請看日誌。(https://github.com/egametang/ET) 註意:已經升級.Net7,請安裝.Net7 SDK. 此游戲為E ...
  • 字元串駐留池(string intern pool)是指,對於某些編程語言,相同的字元串字面值(即具有相同文本內容的字元串)在程式運行時只會被在記憶體中存儲一份,即只保存一個字元串實例。這樣做可以減少記憶體占用,並提高程式執行的效率。 在 Java 中,字元串駐留池是一個存儲字元串的緩存,它存儲在運行時 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...