.NET後端知識彙總

来源:https://www.cnblogs.com/chenboaixuexi/archive/2019/11/18/11886274.html
-Advertisement-
Play Games

C#.net系列後端知識點彙總(也有些許資料庫、svn等),他山之石。 1..net相關技術:XML、webservice、SOAP,其中webservice使用三大技術:XML、SOAP、WSDL。 也有一說webservice三要素: 2.分散式:分散式作業、分散式存儲。 3.資料庫縱向切割、橫 ...


C#.net系列後端知識點彙總(也有些許資料庫、svn),他山之石。

1..net相關技術:XML、webservice、SOAP,其中webservice使用三大技術:XML、SOAP、WSDL。

也有一說webservice三要素:

  1. SOAP:簡單對象訪問協議,數據交換的一種協議規範,用來描述傳遞信息的格式。
  2. WSDL:web service description language,用來描述如何訪問具體介面。
  3. UDDI:用來管理、分發、查詢webservice

2.分散式:分散式作業、分散式存儲。

3.資料庫縱向切割、橫向切割。

4.log4net使用:通過配置文件:App.config或者Web.config

         在<configSections>節點下,配置<section>

<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net"/>

         對應<log4net>節點配置如下:主要有<appender>和<logger>兩個節點

<log4net>

    <!--記錄日誌附加介質-->

    <appender name="InfoAppender" type="log4net.Appender.RollingFileAppender,log4net">

      <file value="Log\\Info\\" /><!--日誌文件生成目錄-->

      <appendToFile value="true" />

      <rollingStyle value="Composite" /><!--混合使用日期和文件大小變換日誌文件名-->

      <maxSizeRollBackups value="-1" />

      <maximumFileSize value="1MB" /><!—文件大於1mb,另起一個日誌文件-->

      <staticLogFileName value="false" />

      <DatePattern value="yyyy-MM-dd&quot;.txt&quot;"/><!-- yyyy-MM-dd:每天都改變日誌 -->

      <layout type="log4net.Layout.PatternLayout"><!—日誌記錄的格式-->

        <conversionPattern value="%date  %-5level  - %message%newline" />

      </layout>

    </appender>

    <!--錯誤日誌附加介質-->

    <appender name="ErrorAppender" type="log4net.Appender.RollingFileAppender,log4net">

      <file value="Log\\Error\\" />

      <appendToFile value="true" />

      <rollingStyle value="Composite" /><!--混合使用日期和文件大小變換日誌文件名-->

      <maxSizeRollBackups value="-1" />

      <maximumFileSize value="1MB" />

      <staticLogFileName value="false" />

      <DatePattern value="yyyy-MM-dd&quot;.txt&quot;"/><!-- yyyy-MM-dd:每天都改變日誌 -->

      <layout type="log4net.Layout.PatternLayout">

        <conversionPattern value="%date  %-5level  - %message%newline" />

      </layout>

    </appender>

    <!--記錄日誌類-->

    <logger name="Info">

      <level value="ALL"/>

      <appender-ref ref="InfoAppender" />

    </logger>

    <!--錯誤日誌類-->

    <logger name="Error" additivity="true">

      <level value="ALL"/>

      <appender-ref ref="ErrorAppender"/>

    </logger>

  </log4net>

在類中應用:

a.自定義一個logger類,用來定義並實現記錄日誌方法

class logHelper

{

         public static readonly log4net.ILog loginfo = log4net.LogManager.GetLogger("Info");

    public static readonly log4net.ILog logerror = log4net.LogManager.GetLogger("Error");

         /// <summary>

    /// 記錄日誌

    /// </summary>

    /// <param name="info"></param>

    public static void WriteLog(string info)

    {

        if (loginfo.IsInfoEnabled)

        {

            loginfo.Info(info);

        }

    }

    /// <summary>

    /// 錯誤日誌

    /// </summary>

    /// <param name="info"></param>

    public static void WriteLog(string info,Exception ex)

    {

        if (logerror.IsErrorEnabled)

        {

            logerror.Error(info,ex);

        }

    }

}

b.使用:

logHelper.WriteLog("use info log");//使用說明日誌

logHelper.WriteLog("use error log", ex);// 使用錯誤日誌

appender:定義日誌輸出方式,寫到哪,寫成什麼文件,包括:layout一個appender只能有一個layout。

logger:直接和應用程式交互的組件,logger只是產生日誌,由它引用的appender記錄到指定媒介。

5. svn管理文檔,註意文檔格式一定要正確,否則會引發衝突,比如提交的是rtf(富文本文件),update之後以word格式打開,然後提交,以rtf格式提交的一方再update會有衝突!

 

6. 操作系統中,請求預設埠是80埠,即請求時不添加埠號則預設為是80,windows,linux應該都是。

 

7. 資料庫 oralce/sqlserver 不等於一個不為空的值,意味著:1.不等於這個值,2.不等於空(null),所以想把空值不漏掉請加:xx <>'1' or xx is null

sqlserver:isnull(xx,0) <> '1'

oralce:nvl(xx,0) <> '1'

 

8. 使用IIS托管應用程式時,當我們需要上傳大文件(4MB以上)時,應用程式會提示Maximum request length exceeded的錯誤信息。該錯誤信息的翻譯:超過最大請求長度:設置

web.config:

<system.web>

<httpRuntime  requestValidationMode="2.0" maxRequestLength="2097151"/>

</system.web>

<!--取消校驗Request獲取數據有特殊字元,上傳大文件設置-->

 

9. IIS7.0、IIS7.5、IIS8.0等提示“請求篩選模塊被配置為拒絕包含雙重轉義序列的請求”的解決方法:

<system.webServer>

         <security>

                   <requestFiltering allowDoubleEscaping="true"/>

    </security>

</system.webServer>

 

10.文件名不能包含的特殊字元篩選:

fileName = Regex.Replace(bjDt.Rows[0]["報價名稱"] + "", @"[\/*<>???::""]", "");// 特殊字元置為空

 

11. 全局程式集緩存(共用程式集GAC)

GAC

(目錄:C:\Windows\assembly)

管理員進入 VS 2017的開發人員命令提示符

卸載程式集

gacutil -u office

安裝程式集

gacutil -i d:\Cooper\dll\office

 

12. cmd:shutdown -a

停止一切通過計劃任務執行的關機、註銷等操作.

 

13. wcf記憶體自檢失敗:

異常信息:記憶體入口檢查失敗,因為可用記憶體(xxx 位元組)少於總記憶體的 xx%。因此,該服務不可用於傳入的請求。若要解決此問題,請減少電腦上的負載,或調整 serviceHostingEnvironment 配置元素上的 minFreeMemoryPercentageToActivateService 的值。

說明: 執行當前 Web 請求期間,出現未經處理的異常。請檢查堆棧跟蹤信息,以瞭解有關該錯誤以及代碼中導致錯誤的出處的詳細信息。

異常詳細信息: System.InsufficientMemoryException: 記憶體入口檢查失敗,因為可用記憶體(438648832 位元組)少於總記憶體的 50%。因此,該服務不可用於傳入的請求。若要解決此問題,請減少電腦上的負載,或調整 serviceHostingEnvironment 配置元素上的 minFreeMemoryPercentageToActivateService 的值。

英文報錯:Memory gates checking failed because the free memory ({0} bytes) is less than {1}% of total memory. As a result, the service will not be available for incoming requests. To resolve this, either reduce the load on the machine or adjust the value of minFreeMemoryPercentageToActivateService on the serviceHostingEnvironment config element.

出現該錯誤信息的原因是因為WCF服務激活之前,系統應該具有的最小記憶體量不足config文件中設置的百分比。

 

<serviceHostingEnvironment multipleSiteBindingsEnabled="true" minFreeMemoryPercentageToActivateService="0" />

 

14.svn-sqlite3:

svn更新或提交代碼中斷時容易lock,這時可以試試clear up,如果不管用,則,在.svn文件夾下放一個sqlite3,然後執行如下語句:

.open wc.db;

select * from work_queue;

select * from wc_lock;

 

15.CRON表達式:Quartz使用

cron表達式,不論是*/2,還是0/2  ,都是在整點進行:

如果每小時執行一次:0 0 * * * ? *  或者  0 0 0/1 * * ? *  或者 0 0 */1 * * ? *,用cron表達式就相當於知道到底在哪一個時間點執行

例子:

0 0/5 * * * ? *:每五分鐘執行一次,假如現在是17:49,則會在17:50執行,把每小時按五分鐘分割成12份,共13個時刻點:0 5 10 15 20 25 30 35 40 45 50 55 59:59,所以會在當前時間的下一個整點執行。如果這樣寫:0 */5 * * * ? *,假如現在是17:49,會立即執行一次,下一次的執行時刻同上

 

16.power designer 生成資料庫文檔:

1.生成physical-data-model

2.Report->Reports

   --List of Tables

   --Table 

      --List of Table Columns    layout  Name 25% Data Type 20%  Default Value 15% Comment 40%

section -header/footer 清空

 


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

-Advertisement-
Play Games
更多相關文章
  • 一、預設參數 python為了簡化函數的調用,提供了預設參數機制: 這樣在調用pow函數時,就可以省略最後一個參數不寫: 在定義有預設參數的函數時,需要註意以下: 必選參數必須在前面,預設參數在後; 設置何種參數為預設參數?一般來說,將參數值變化小的設置為預設參數。 python標準庫實踐 pyth ...
  • 對於面向對象編程而言,命名空間namespace和use的概念非常重要. 1.根命名空間是反斜線 \ ,有點類似linux中的根目錄 / 的那種感覺,但使用var_dump()函數列印時其實是空字元串 1 var_dump(lxx_namespace); 2 //string(0) "" 2.而對於 ...
  • 1. php簡化版的圖片上傳(沒有各種驗證) 1 2 3 4 <form action="" enctype="multipart/form-data" method="post" > 請選擇需要上傳的文件:<input type="file" name="upfile" /><br> <input ...
  • 一.第一種情況(死迴圈) 二.第二種情況(類似while 條件) 五.break 與continue 和 ,break停止迴圈,continue跳出本層迴圈 ...
  • 利用sorted(iterable[, key][, reverse]) key:指定一個接收一個參數的函數,這個函數用於從每個元素中提取一個用於比較的關鍵字,預設值為None(直接比較元素) reverse:排序規則,reverse = True 降序 , reverse = False 升序(默 ...
  • 本文源碼: "GitHub·點這裡" || "GitEE·點這裡" 一、生活場景 1、場景描述 智能電腦的品牌越來越多,由此誕生了一款電腦控制的APP,萬能遙控器,用戶在使用遙控器的時候,可以切換為自家電視的品牌,然後對電視進行控制。 2、代碼實現 二、命令模式 1、基礎概念 命令模式屬於對象的行為 ...
  • 一.if邏輯判斷 二.switch 方式一 方式二 關鍵字fallthrough的使用 ...
  • FluentValidation在C# WPF中應用,支持嵌套屬性驗證。 ...
一周排行
    -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.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...