From 9ca96199d92168fe221dda9aba56f55520a561d8 Mon Sep 17 00:00:00 2001
From: hutongqing <hutongqing@hnkhzn.com>
Date: 星期二, 29 十月 2024 17:30:59 +0800
Subject: [PATCH] 1

---
 WIDESEAWCS_Server/WIDESEAWCS_Core/ApiDoc/ByteHelper.cs                                              |   24 
 WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/config/applicationhost.config                               | 1910 +++++++++++------------
 WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/DesignTimeBuild/.dtbcache.v2                                |    0 
 WIDESEAWCS_Server/WIDESEAWCS_Communicator/CustomModel/MelsecCustomModel.cs                          |  219 ++
 WIDESEAWCS_Server/WIDESEAWCS_Core/Helper/MD5Helper.cs                                               |  101 +
 WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/v17/.futdcache.v2                                           |    0 
 WIDESEAWCS_Server/WIDESEAWCS_Communicator/CustomModel/SiemensCustomModel.cs                         |  230 ++
 WIDESEAWCS_Server/WIDESEAWCS_ISystemServices/ISys_LogService.cs                                     |   14 
 WIDESEAWCS_Server/WIDESEAWCS_Core/ApiDoc/HtmlHelper.cs                                              |   69 
 WIDESEAWCS_Server/WIDESEAWCS_SystemServices/Sys_LogService.cs                                       |   19 
 WIDESEAWCS_Server/WIDESEAWCS_Communicator/CustomModel/ModbusCustomModel.cs                          |  219 ++
 WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/WIDESEAWCS_QuartzJob.csproj                                  |    2 
 WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/87d5782c-f2d2-4f5a-bfa4-a23fd505a64b.vsidx |    0 
 WIDESEAWCS_Server/WIDESEAWCS_Core/Helper/ObjectExtension.cs                                         |   14 
 WIDESEAWCS_Server/WIDESEAWCS_Core/Middlewares/SwaggerMiddleware.cs                                  |   14 
 WIDESEAWCS_Server/.vs/ProjectEvaluation/wideseawcs_server.projects.v7.bin                           |    0 
 WIDESEAWCS_Server/WIDESEAWCS_Core/Attributes/ModelValidateAttribute.cs                              |   25 
 WIDESEAWCS_Server/WIDESEAWCS_Server/wwwroot/css/swaggerdoc.css                                      |  109 +
 WIDESEAWCS_Client/src/views/Index.vue                                                               |    2 
 WIDESEAWCS_Server/WIDESEAWCS_Core/BaseServices/ServiceBase.cs                                       |   19 
 WIDESEAWCS_Server/WIDESEAWCS_Core/AOP/SqlSugarAop.cs                                                |   22 
 WIDESEAWCS_Server/WIDESEAWCS_Communicator/CustomModel/DataLengthAttribute.cs                        |   20 
 WIDESEAWCS_Server/WIDESEAWCS_Core/Const/HtmlElementType.cs                                          |    2 
 WIDESEAWCS_Server/WIDESEAWCS_Server/Controllers/System/Sys_DictionaryController.cs                  |    4 
 WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/v17/DocumentLayout.json                                     |  816 +++------
 WIDESEAWCS_Server/WIDESEAWCS_SystemRepository/Sys_LogRepository.cs                                  |   18 
 WIDESEAWCS_Server/.vs/ProjectEvaluation/wideseawcs_server.metadata.v7.bin                           |    0 
 WIDESEAWCS_Server/WIDESEAWCS_Core/Attributes/CacheAttribute.cs                                      |   20 
 WIDESEAWCS_Server/WIDESEAWCS_Core/AOP/CacheAOP.cs                                                   |  150 +
 WIDESEAWCS_Client/src/views/system/Sys_Log.vue                                                      |  271 ++
 WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/TaskService.cs                                         |   10 
 WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/6891d88c-cbf2-4091-a24a-42f59c325d01.vsidx |    0 
 WIDESEAWCS_Server/WIDESEAWCS_Server/Properties/launchSettings.json                                  |    2 
 WIDESEAWCS_Server/WIDESEAWCS_Server/index.html                                                      |    4 
 WIDESEAWCS_Server/WIDESEAWCS_Core/App.cs                                                            |    2 
 WIDESEAWCS_Server/WIDESEAWCS_Core/Caches/ICacheService.cs                                           |    8 
 WIDESEAWCS_Server/WIDESEAWCS_SystemServices/Sys_DictionaryService.cs                                |    2 
 WIDESEAWCS_Server/WIDESEAWCS_Core/Middlewares/ApiLogMiddleware.cs                                   |    2 
 WIDESEAWCS_Server/WIDESEAWCS_Core/Utilities/ModelValidate.cs                                        |   77 
 WIDESEAWCS_Server/WIDESEAWCS_Server/wwwroot/js/swaggerdoc.js                                        |  139 +
 WIDESEAWCS_Server/WIDESEAWCS_Server/Controllers/System/Sys_LogController.cs                         |   17 
 WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/562911c4-b81e-424e-9269-65d538986921.vsidx |    0 
 WIDESEAWCS_Server/WIDESEAWCS_ISystemRepository/ISys_LogRepository.cs                                |   14 
 WIDESEAWCS_Server/WIDESEAWCS_Core/Extensions/SwaggerSetup.cs                                        |   22 
 WIDESEAWCS_Server/WIDESEAWCS_Core/Utilities/EntityProperties.cs                                     |   21 
 WIDESEAWCS_Server/WIDESEAWCS_Core/Caches/MemoryCacheService.cs                                      |   45 
 WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/23fc01ce-aa5c-4077-9a3b-3a5290a8ba88.vsidx |    0 
 WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/StackerCrane/Spec/SpeStackerCrane.cs                         |    9 
 /dev/null                                                                                           |   59 
 WIDESEAWCS_Server/WIDESEAWCS_Core/Helper/UtilConvert.cs                                             |    9 
 WIDESEAWCS_Client/src/views/Login.vue                                                               |    2 
 WIDESEAWCS_Server/WIDESEAWCS_Server/appsettings.json                                                |    2 
 WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/0a2b14b5-bcfa-4464-9cf2-3935b2833bc9.vsidx |    0 
 53 files changed, 3,074 insertions(+), 1,685 deletions(-)

diff --git a/WIDESEAWCS_Client/src/views/Index.vue b/WIDESEAWCS_Client/src/views/Index.vue
index e59ef4f..6a20d4e 100644
--- a/WIDESEAWCS_Client/src/views/Index.vue
+++ b/WIDESEAWCS_Client/src/views/Index.vue
@@ -120,7 +120,7 @@
 import VolMenu from "@/components/basic/VolElementMenu.vue";
 import Message from "./index/Message.vue";
 import MessageConfig from "./index/MessageConfig.js";
-var imgUrl = require("@/assets/imgs/wms_x.png");
+var imgUrl = require("@/assets/imgs/wcs_logo.png");
 var $this;
 var $interval;
 var $indexDate;
diff --git a/WIDESEAWCS_Client/src/views/Login.vue b/WIDESEAWCS_Client/src/views/Login.vue
index c61c0e8..3420df5 100644
--- a/WIDESEAWCS_Client/src/views/Login.vue
+++ b/WIDESEAWCS_Client/src/views/Login.vue
@@ -1,6 +1,6 @@
 <template>
   <div class="login-container">
-    <div class="project-name">WIDESEA_WMS</div>
+    <div class="project-name">WIDESEA_WCS</div>
     <div class="login-form">
       <div class="form-user" @keypress="loginPress">
         <div class="login-text">
diff --git a/WIDESEAWCS_Client/src/views/system/Sys_Log.vue b/WIDESEAWCS_Client/src/views/system/Sys_Log.vue
index 9742628..a3d962c 100644
--- a/WIDESEAWCS_Client/src/views/system/Sys_Log.vue
+++ b/WIDESEAWCS_Client/src/views/system/Sys_Log.vue
@@ -5,66 +5,219 @@
  *涓氬姟璇峰湪@/extension/system/Sys_Log.js姝ゅ缂栧啓
  -->
 <template>
-    <view-grid ref="grid"
-               :columns="columns"
-               :detail="detail"
-               :editFormFields="editFormFields"
-               :editFormOptions="editFormOptions"
-               :searchFormFields="searchFormFields"
-               :searchFormOptions="searchFormOptions"
-               :table="table"
-               :extend="extend">
-    </view-grid>
+  <view-grid
+    ref="grid"
+    :columns="columns"
+    :detail="detail"
+    :editFormFields="editFormFields"
+    :editFormOptions="editFormOptions"
+    :searchFormFields="searchFormFields"
+    :searchFormOptions="searchFormOptions"
+    :table="table"
+    :extend="extend"
+  >
+  </view-grid>
 </template>
 <script>
-    import extend from "@/extension/system/Sys_Log.js";
-    import { ref, defineComponent } from "vue";
-    export default defineComponent({
-        setup() {
-            const table = ref({
-                key: 'Id',
-                footer: "Foots",
-                cnName: '绯荤粺鏃ュ織',
-                name: 'Sys_Log',
-                url: "/Sys_Log/",
-                sortName: "Id"
-            });
-            const editFormFields = ref({});
-            const editFormOptions = ref([]);
-            const searchFormFields = ref({"BeginDate":"","Url":"","LogType":[],"Success":[],"UserIP":"","ServiceIP":"","Role_Id":""});
-            const searchFormOptions = ref([[{"title":"璇锋眰鍦板潃","field":"Url","type":"text"},{"title":"鐢ㄦ埛IP","field":"UserIP","type":"text"},{"title":"鏈嶅姟鍣↖P","field":"ServiceIP","type":"text"}],[{"title":"寮�濮嬫椂闂�","field":"BeginDate","type":"datetime"},{"dataKey":"restatus","data":[],"title":"鍝嶅簲鐘舵��","field":"Success","type":"selectList"},{"dataKey":"roles","data":[],"title":"瑙掕壊ID","field":"Role_Id","type":"select"}],[{"dataKey":"log","data":[],"title":"鏃ュ織绫诲瀷","field":"LogType","colSize":12,"type":"checkbox"}]]);
-            const columns = ref([{field:'Id',title:'Id',type:'int',width:90,hidden:true,readonly:true,require:true,align:'left'},
-                       {field:'BeginDate',title:'寮�濮嬫椂闂�',type:'datetime',width:140,align:'left',sortable:true},
-                       {field:'UserName',title:'鐢ㄦ埛鍚嶇О',type:'string',width:90,align:'left'},
-                       {field:'Url',title:'璇锋眰鍦板潃',type:'string',width:110,align:'left'},
-                       {field:'LogType',title:'鏃ュ織绫诲瀷',type:'string',bind:{ key:'log',data:[]},width:80,align:'left'},
-                       {field:'Success',title:'鍝嶅簲鐘舵��',type:'int',bind:{ key:'restatus',data:[]},width:80,align:'left'},
-                       {field:'ElapsedTime',title:'鏃堕暱',type:'int',width:60,align:'left'},
-                       {field:'RequestParameter',title:'璇锋眰鍙傛暟',type:'string',width:70,align:'left'},
-                       {field:'ResponseParameter',title:'鍝嶅簲鍙傛暟',type:'string',width:70,align:'left'},
-                       {field:'ExceptionInfo',title:'寮傚父淇℃伅',type:'string',width:70,align:'left'},
-                       {field:'UserIP',title:'鐢ㄦ埛IP',type:'string',width:90,align:'left'},
-                       {field:'ServiceIP',title:'鏈嶅姟鍣↖P',type:'string',width:90,hidden:true,align:'left'},
-                       {field:'BrowserType',title:'娴忚鍣ㄧ被鍨�',type:'string',width:90,align:'left'},
-                       {field:'User_Id',title:'鐢ㄦ埛ID',type:'int',width:90,hidden:true,align:'left'},
-                       {field:'Role_Id',title:'瑙掕壊ID',type:'int',bind:{ key:'roles',data:[]},width:90,hidden:true,align:'left'},
-                       {field:'EndDate',title:'缁撴潫鏃堕棿',type:'datetime',width:150,hidden:true,align:'left',sortable:true}]);
-            const detail = ref({
-                cnName: "#detailCnName",
-                columns: [],
-                sortName: "",
-                key: ""
-            });
-            return {
-                table,
-                extend,
-                editFormFields,
-                editFormOptions,
-                searchFormFields,
-                searchFormOptions,
-                columns,
-                detail,
-            };
-        },
+import extend from "@/extension/system/Sys_Log.js";
+import { ref, defineComponent } from "vue";
+export default defineComponent({
+  setup() {
+    const table = ref({
+      key: "Id",
+      footer: "Foots",
+      cnName: "绯荤粺鏃ュ織",
+      name: "Sys_Log",
+      url: "/Sys_Log/",
+      sortName: "Id",
     });
+    const editFormFields = ref({});
+    const editFormOptions = ref([]);
+    const searchFormFields = ref({
+      BeginDate: "",
+      Url: "",
+      LogType: [],
+      Success: [],
+      UserIP: "",
+      ServiceIP: "",
+      Role_Id: "",
+    });
+    const searchFormOptions = ref([
+      [
+        { title: "璇锋眰鍦板潃", field: "url", type: "text" },
+        { title: "鐢ㄦ埛IP", field: "userIP", type: "text" },
+        { title: "鏈嶅姟鍣↖P", field: "serviceIP", type: "text" },
+      ],
+      [
+        { title: "寮�濮嬫椂闂�", field: "beginDate", type: "datetime" },
+        {
+          dataKey: "restatus",
+          data: [],
+          title: "鍝嶅簲鐘舵��",
+          field: "success",
+          type: "selectList",
+        },
+        {
+          dataKey: "roles",
+          data: [],
+          title: "瑙掕壊ID",
+          field: "role_Id",
+          type: "select",
+        },
+      ],
+      [
+        {
+          dataKey: "log",
+          data: [],
+          title: "鏃ュ織绫诲瀷",
+          field: "logType",
+          colSize: 12,
+          type: "checkbox",
+        },
+      ],
+    ]);
+    const columns = ref([
+      {
+        field: "id",
+        title: "Id",
+        type: "int",
+        width: 90,
+        hidden: true,
+        readonly: true,
+        require: true,
+        align: "left",
+      },
+      {
+        field: "beginDate",
+        title: "寮�濮嬫椂闂�",
+        type: "datetime",
+        width: 140,
+        align: "left",
+        sortable: true,
+      },
+      {
+        field: "userName",
+        title: "鐢ㄦ埛鍚嶇О",
+        type: "string",
+        width: 90,
+        align: "left",
+      },
+      {
+        field: "url",
+        title: "璇锋眰鍦板潃",
+        type: "string",
+        width: 110,
+        align: "left",
+      },
+      {
+        field: "logType",
+        title: "鏃ュ織绫诲瀷",
+        type: "string",
+        bind: { key: "log", data: [] },
+        width: 80,
+        align: "left",
+      },
+      {
+        field: "success",
+        title: "鍝嶅簲鐘舵��",
+        type: "int",
+        bind: { key: "restatus", data: [] },
+        width: 80,
+        align: "left",
+      },
+      {
+        field: "elapsedTime",
+        title: "鏃堕暱",
+        type: "int",
+        width: 60,
+        align: "left",
+      },
+      {
+        field: "requestParameter",
+        title: "璇锋眰鍙傛暟",
+        type: "string",
+        width: 70,
+        align: "left",
+      },
+      {
+        field: "responseParameter",
+        title: "鍝嶅簲鍙傛暟",
+        type: "string",
+        width: 70,
+        align: "left",
+      },
+      {
+        field: "exceptionInfo",
+        title: "寮傚父淇℃伅",
+        type: "string",
+        width: 70,
+        align: "left",
+      },
+      {
+        field: "userIP",
+        title: "鐢ㄦ埛IP",
+        type: "string",
+        width: 90,
+        align: "left",
+      },
+      {
+        field: "serviceIP",
+        title: "鏈嶅姟鍣↖P",
+        type: "string",
+        width: 90,
+        hidden: true,
+        align: "left",
+      },
+      {
+        field: "browserType",
+        title: "娴忚鍣ㄧ被鍨�",
+        type: "string",
+        width: 90,
+        align: "left",
+      },
+      {
+        field: "userId",
+        title: "鐢ㄦ埛ID",
+        type: "int",
+        width: 90,
+        hidden: true,
+        align: "left",
+      },
+      {
+        field: "roleId",
+        title: "瑙掕壊ID",
+        type: "int",
+        bind: { key: "roles", data: [] },
+        width: 90,
+        hidden: true,
+        align: "left",
+      },
+      {
+        field: "endDate",
+        title: "缁撴潫鏃堕棿",
+        type: "datetime",
+        width: 150,
+        hidden: true,
+        align: "left",
+        sortable: true,
+      },
+    ]);
+    const detail = ref({
+      cnName: "#detailCnName",
+      columns: [],
+      sortName: "",
+      key: "",
+    });
+    return {
+      table,
+      extend,
+      editFormFields,
+      editFormOptions,
+      searchFormFields,
+      searchFormOptions,
+      columns,
+      detail,
+    };
+  },
+});
 </script>
diff --git a/WIDESEAWCS_Server/.vs/ProjectEvaluation/wideseawcs_server.metadata.v7.bin b/WIDESEAWCS_Server/.vs/ProjectEvaluation/wideseawcs_server.metadata.v7.bin
index 20e659b..eb76bc4 100644
--- a/WIDESEAWCS_Server/.vs/ProjectEvaluation/wideseawcs_server.metadata.v7.bin
+++ b/WIDESEAWCS_Server/.vs/ProjectEvaluation/wideseawcs_server.metadata.v7.bin
Binary files differ
diff --git a/WIDESEAWCS_Server/.vs/ProjectEvaluation/wideseawcs_server.projects.v7.bin b/WIDESEAWCS_Server/.vs/ProjectEvaluation/wideseawcs_server.projects.v7.bin
index 3216ccf..b9df306 100644
--- a/WIDESEAWCS_Server/.vs/ProjectEvaluation/wideseawcs_server.projects.v7.bin
+++ b/WIDESEAWCS_Server/.vs/ProjectEvaluation/wideseawcs_server.projects.v7.bin
Binary files differ
diff --git a/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/DesignTimeBuild/.dtbcache.v2 b/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/DesignTimeBuild/.dtbcache.v2
index 6eb0412..2e0b4a4 100644
--- a/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/DesignTimeBuild/.dtbcache.v2
+++ b/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/DesignTimeBuild/.dtbcache.v2
Binary files differ
diff --git a/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/0a2b14b5-bcfa-4464-9cf2-3935b2833bc9.vsidx b/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/0a2b14b5-bcfa-4464-9cf2-3935b2833bc9.vsidx
new file mode 100644
index 0000000..4c9714b
--- /dev/null
+++ b/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/0a2b14b5-bcfa-4464-9cf2-3935b2833bc9.vsidx
Binary files differ
diff --git a/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/23fc01ce-aa5c-4077-9a3b-3a5290a8ba88.vsidx b/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/23fc01ce-aa5c-4077-9a3b-3a5290a8ba88.vsidx
new file mode 100644
index 0000000..c496ec4
--- /dev/null
+++ b/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/23fc01ce-aa5c-4077-9a3b-3a5290a8ba88.vsidx
Binary files differ
diff --git a/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/562911c4-b81e-424e-9269-65d538986921.vsidx b/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/562911c4-b81e-424e-9269-65d538986921.vsidx
new file mode 100644
index 0000000..aaf6178
--- /dev/null
+++ b/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/562911c4-b81e-424e-9269-65d538986921.vsidx
Binary files differ
diff --git a/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/6891d88c-cbf2-4091-a24a-42f59c325d01.vsidx b/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/6891d88c-cbf2-4091-a24a-42f59c325d01.vsidx
new file mode 100644
index 0000000..1591c1e
--- /dev/null
+++ b/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/6891d88c-cbf2-4091-a24a-42f59c325d01.vsidx
Binary files differ
diff --git a/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/87d5782c-f2d2-4f5a-bfa4-a23fd505a64b.vsidx b/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/87d5782c-f2d2-4f5a-bfa4-a23fd505a64b.vsidx
new file mode 100644
index 0000000..6a62868
--- /dev/null
+++ b/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/87d5782c-f2d2-4f5a-bfa4-a23fd505a64b.vsidx
Binary files differ
diff --git a/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/912a677d-8330-4776-ab36-6a6c09f9a69d.vsidx b/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/912a677d-8330-4776-ab36-6a6c09f9a69d.vsidx
deleted file mode 100644
index 384d1cf..0000000
--- a/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/912a677d-8330-4776-ab36-6a6c09f9a69d.vsidx
+++ /dev/null
Binary files differ
diff --git a/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/bafe491b-98e3-4da6-8d36-483608a110d1.vsidx b/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/bafe491b-98e3-4da6-8d36-483608a110d1.vsidx
deleted file mode 100644
index edf8a88..0000000
--- a/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/bafe491b-98e3-4da6-8d36-483608a110d1.vsidx
+++ /dev/null
Binary files differ
diff --git a/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/c47c3150-8299-4d98-9831-255b0ec64b5a.vsidx b/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/c47c3150-8299-4d98-9831-255b0ec64b5a.vsidx
deleted file mode 100644
index 25d6365..0000000
--- a/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/c47c3150-8299-4d98-9831-255b0ec64b5a.vsidx
+++ /dev/null
Binary files differ
diff --git a/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/c4e15ca1-e266-4787-b26c-c8bd32f0aac0.vsidx b/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/c4e15ca1-e266-4787-b26c-c8bd32f0aac0.vsidx
deleted file mode 100644
index 26dad66..0000000
--- a/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/c4e15ca1-e266-4787-b26c-c8bd32f0aac0.vsidx
+++ /dev/null
Binary files differ
diff --git a/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/c7d62803-d9cb-4c7d-9753-fa2c5aefc7bb.vsidx b/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/c7d62803-d9cb-4c7d-9753-fa2c5aefc7bb.vsidx
deleted file mode 100644
index 43b154a..0000000
--- a/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/c7d62803-d9cb-4c7d-9753-fa2c5aefc7bb.vsidx
+++ /dev/null
Binary files differ
diff --git a/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/config/applicationhost.config b/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/config/applicationhost.config
index cdd2df8..fd2cb23 100644
--- a/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/config/applicationhost.config
+++ b/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/config/applicationhost.config
@@ -1,4 +1,4 @@
-<?xml version="1.0" encoding="UTF-8"?>
+锘�<?xml version="1.0" encoding="UTF-8"?>
 <!--
 
     IIS configuration sections.
@@ -18,8 +18,7 @@
 
 -->
 <configuration>
-
-    <!--
+  <!--
 
         The <configSections> section controls the registration of sections.
         Section is the basic unit of deployment, locking, searching and
@@ -46,981 +45,954 @@
         </location>
 
     -->
-    <configSections>
-        <sectionGroup name="system.applicationHost">
-            <section name="applicationPools" allowDefinition="AppHostOnly" overrideModeDefault="Deny" />
-            <section name="configHistory" allowDefinition="AppHostOnly" overrideModeDefault="Deny" />
-            <section name="customMetadata" allowDefinition="AppHostOnly" overrideModeDefault="Deny" />
-            <section name="listenerAdapters" allowDefinition="AppHostOnly" overrideModeDefault="Deny" />
-            <section name="log" allowDefinition="AppHostOnly" overrideModeDefault="Deny" />
-            <section name="serviceAutoStartProviders" allowDefinition="AppHostOnly" overrideModeDefault="Deny" />
-            <section name="sites" allowDefinition="AppHostOnly" overrideModeDefault="Deny" />
-            <section name="webLimits" allowDefinition="AppHostOnly" overrideModeDefault="Deny" />
+  <configSections>
+    <sectionGroup name="system.applicationHost">
+      <section name="applicationPools" allowDefinition="AppHostOnly" overrideModeDefault="Deny" />
+      <section name="configHistory" allowDefinition="AppHostOnly" overrideModeDefault="Deny" />
+      <section name="customMetadata" allowDefinition="AppHostOnly" overrideModeDefault="Deny" />
+      <section name="listenerAdapters" allowDefinition="AppHostOnly" overrideModeDefault="Deny" />
+      <section name="log" allowDefinition="AppHostOnly" overrideModeDefault="Deny" />
+      <section name="serviceAutoStartProviders" allowDefinition="AppHostOnly" overrideModeDefault="Deny" />
+      <section name="sites" allowDefinition="AppHostOnly" overrideModeDefault="Deny" />
+      <section name="webLimits" allowDefinition="AppHostOnly" overrideModeDefault="Deny" />
+    </sectionGroup>
+    <sectionGroup name="system.webServer">
+      <section name="asp" overrideModeDefault="Deny" />
+      <section name="caching" overrideModeDefault="Allow" />
+      <section name="cgi" overrideModeDefault="Deny" />
+      <section name="defaultDocument" overrideModeDefault="Allow" />
+      <section name="directoryBrowse" overrideModeDefault="Allow" />
+      <section name="fastCgi" allowDefinition="AppHostOnly" overrideModeDefault="Deny" />
+      <section name="globalModules" allowDefinition="AppHostOnly" overrideModeDefault="Deny" />
+      <section name="handlers" overrideModeDefault="Deny" />
+      <section name="httpCompression" overrideModeDefault="Allow" allowDefinition="Everywhere" />
+      <section name="httpErrors" overrideModeDefault="Allow" />
+      <section name="httpLogging" overrideModeDefault="Deny" />
+      <section name="httpProtocol" overrideModeDefault="Allow" />
+      <section name="httpRedirect" overrideModeDefault="Allow" />
+      <section name="httpTracing" overrideModeDefault="Deny" />
+      <section name="isapiFilters" allowDefinition="MachineToApplication" overrideModeDefault="Deny" />
+      <section name="modules" allowDefinition="MachineToApplication" overrideModeDefault="Deny" />
+      <section name="applicationInitialization" allowDefinition="MachineToApplication" overrideModeDefault="Allow" />
+      <section name="odbcLogging" overrideModeDefault="Deny" />
+      <sectionGroup name="security">
+        <section name="access" overrideModeDefault="Deny" />
+        <section name="applicationDependencies" overrideModeDefault="Deny" />
+        <sectionGroup name="authentication">
+          <section name="anonymousAuthentication" overrideModeDefault="Deny" />
+          <section name="basicAuthentication" overrideModeDefault="Deny" />
+          <section name="clientCertificateMappingAuthentication" overrideModeDefault="Deny" />
+          <section name="digestAuthentication" overrideModeDefault="Deny" />
+          <section name="iisClientCertificateMappingAuthentication" overrideModeDefault="Deny" />
+          <section name="windowsAuthentication" overrideModeDefault="Deny" />
         </sectionGroup>
-
-        <sectionGroup name="system.webServer">
-            <section name="asp" overrideModeDefault="Deny" />
-            <section name="caching" overrideModeDefault="Allow" />
-            <section name="cgi" overrideModeDefault="Deny" />
-            <section name="defaultDocument" overrideModeDefault="Allow" />
-            <section name="directoryBrowse" overrideModeDefault="Allow" />
-            <section name="fastCgi" allowDefinition="AppHostOnly" overrideModeDefault="Deny" />
-            <section name="globalModules" allowDefinition="AppHostOnly" overrideModeDefault="Deny" />
-            <section name="handlers" overrideModeDefault="Deny" />
-            <section name="httpCompression" overrideModeDefault="Allow" allowDefinition="Everywhere" />
-            <section name="httpErrors" overrideModeDefault="Allow" />
-            <section name="httpLogging" overrideModeDefault="Deny" />
-            <section name="httpProtocol" overrideModeDefault="Allow" />
-            <section name="httpRedirect" overrideModeDefault="Allow" />
-            <section name="httpTracing" overrideModeDefault="Deny" />
-            <section name="isapiFilters" allowDefinition="MachineToApplication" overrideModeDefault="Deny" />
-            <section name="modules" allowDefinition="MachineToApplication" overrideModeDefault="Deny" />
-            <section name="applicationInitialization" allowDefinition="MachineToApplication" overrideModeDefault="Allow" />
-            <section name="odbcLogging" overrideModeDefault="Deny" />
-            <sectionGroup name="security">
-                <section name="access" overrideModeDefault="Deny" />
-                <section name="applicationDependencies" overrideModeDefault="Deny" />
-                <sectionGroup name="authentication">
-                    <section name="anonymousAuthentication" overrideModeDefault="Deny" />
-                    <section name="basicAuthentication" overrideModeDefault="Deny" />
-                    <section name="clientCertificateMappingAuthentication" overrideModeDefault="Deny" />
-                    <section name="digestAuthentication" overrideModeDefault="Deny" />
-                    <section name="iisClientCertificateMappingAuthentication" overrideModeDefault="Deny" />
-                    <section name="windowsAuthentication" overrideModeDefault="Deny" />
-                </sectionGroup>
-                <section name="authorization" overrideModeDefault="Allow" />
-                <section name="ipSecurity" overrideModeDefault="Deny" />
-                <section name="dynamicIpSecurity" overrideModeDefault="Deny" />
-                <section name="isapiCgiRestriction" allowDefinition="AppHostOnly" overrideModeDefault="Deny" />
-                <section name="requestFiltering" overrideModeDefault="Allow" />
-            </sectionGroup>
-            <section name="serverRuntime" overrideModeDefault="Deny" />
-            <section name="serverSideInclude" overrideModeDefault="Deny" />
-            <section name="staticContent" overrideModeDefault="Allow" />
-            <sectionGroup name="tracing">
-                <section name="traceFailedRequests" overrideModeDefault="Allow" />
-                <section name="traceProviderDefinitions" overrideModeDefault="Deny" />
-            </sectionGroup>
-            <section name="urlCompression" overrideModeDefault="Allow" />
-            <section name="validation" overrideModeDefault="Allow" />
-            <sectionGroup name="webdav">
-                <section name="globalSettings" overrideModeDefault="Deny" />
-                <section name="authoring" overrideModeDefault="Deny" />
-                <section name="authoringRules" overrideModeDefault="Deny" />
-            </sectionGroup>
-            <sectionGroup name="rewrite">
-                <section name="allowedServerVariables" overrideModeDefault="Deny" />
-                <section name="rules" overrideModeDefault="Allow" />
-                <section name="outboundRules" overrideModeDefault="Allow" />
-                <section name="globalRules" overrideModeDefault="Deny" allowDefinition="AppHostOnly" />
-                <section name="providers" overrideModeDefault="Allow" />
-                <section name="rewriteMaps" overrideModeDefault="Allow" />
-            </sectionGroup>
-            <section name="webSocket" overrideModeDefault="Deny" />
-        <section name="aspNetCore" overrideModeDefault="Allow" /></sectionGroup>
-    </configSections>
-
-    <configProtectedData>
-        <providers>
-            <add name="IISWASOnlyRsaProvider" type="" description="Uses RsaCryptoServiceProvider to encrypt and decrypt" keyContainerName="iisWasKey" cspProviderName="" useMachineContainer="true" useOAEP="false" />
-            <add name="AesProvider" type="Microsoft.ApplicationHost.AesProtectedConfigurationProvider" description="Uses an AES session key to encrypt and decrypt" keyContainerName="iisConfigurationKey" cspProviderName="" useOAEP="false" useMachineContainer="true" sessionKey="AQIAAA5mAAAApAAA/HKxkz6alrlAPez0IUgujj/6k3WxCDriHp6jvpv3yEZmo7h6SMzGLxo4mTrIQVHSkB7tmElHKfUFTzE2BWF7nFWHY6Z6qmGBauFzwJMwESjril7Gjz69RBFH259HQ6aRDq9Xfx7U7H4HtdmnKNqGjgl/hwPQBGeIlWiDh+sYv3vKB0QU971tjX6H2B+9armlnC8UOuA6JYMDMI/VLLL16sng0fWAy5JYe0YVABVjiAWDW264RZW9Tr1Oax4qHZKg+SdjULxeOc2YmpX+d0yeITo1HkPF1hN1gHpIPIUDo05ilHUNfR3OkjVCIQK4cFKCq1s8NH+y+13MxUC4Fn1AlQ==" />
-            <add name="IISWASOnlyAesProvider" type="Microsoft.ApplicationHost.AesProtectedConfigurationProvider" description="Uses an AES session key to encrypt and decrypt" keyContainerName="iisWasKey" cspProviderName="" useOAEP="false" useMachineContainer="true" sessionKey="AQIAAA5mAAAApAAALmU8lTC+v2qtfQiiiquvvLpUQqKLEXs+jSKoWCM/uPhyB++k4dwug19mGidNK5FYiWK2KYE1yhjVJcbp12E98Q0R2nT7eBiCMY2JairxQ591rqABK7keGaIjwH7PwGzSpILl3RJ4YFvJ/7ZXEJxeDZIjW8ZxWVXx+/VyHs9U3WguLEkgMUX3jrxJi8LouxaIVPJAv/YQ1ZCWs8zImitxX/C/7o7yaIxznfsN5nGQzQfpUDPeby99aw2zPVTtZI2LaWIBON8guABvZ6JtJVDWmfdK6sodbnwdZkr6/Z2rfvamT1dC1SpQrGG7ulR/f9/GXvCaW10ZVKxekBF/CYlNMg==" />
-        </providers>
-    </configProtectedData>
-
-    <system.applicationHost>
-
-        <applicationPools>
-            <add name="Clr4IntegratedAppPool" managedRuntimeVersion="v4.0" managedPipelineMode="Integrated" CLRConfigFile="%IIS_USER_HOME%\config\aspnet.config" autoStart="true" />
-            <add name="Clr4ClassicAppPool" managedRuntimeVersion="v4.0" managedPipelineMode="Classic" CLRConfigFile="%IIS_USER_HOME%\config\aspnet.config" autoStart="true" />
-            <add name="Clr2IntegratedAppPool" managedRuntimeVersion="v2.0" managedPipelineMode="Integrated" CLRConfigFile="%IIS_USER_HOME%\config\aspnet.config" autoStart="true" />
-            <add name="Clr2ClassicAppPool" managedRuntimeVersion="v2.0" managedPipelineMode="Classic" CLRConfigFile="%IIS_USER_HOME%\config\aspnet.config" autoStart="true" />
-            <add name="UnmanagedClassicAppPool" managedRuntimeVersion="" managedPipelineMode="Classic" autoStart="true" />
-            <applicationPoolDefaults managedRuntimeVersion="v4.0">
-                <processModel loadUserProfile="true" setProfileEnvironment="false" />
-            </applicationPoolDefaults>
-        </applicationPools>
-
-        <!--
+        <section name="authorization" overrideModeDefault="Allow" />
+        <section name="ipSecurity" overrideModeDefault="Deny" />
+        <section name="dynamicIpSecurity" overrideModeDefault="Deny" />
+        <section name="isapiCgiRestriction" allowDefinition="AppHostOnly" overrideModeDefault="Deny" />
+        <section name="requestFiltering" overrideModeDefault="Allow" />
+      </sectionGroup>
+      <section name="serverRuntime" overrideModeDefault="Deny" />
+      <section name="serverSideInclude" overrideModeDefault="Deny" />
+      <section name="staticContent" overrideModeDefault="Allow" />
+      <sectionGroup name="tracing">
+        <section name="traceFailedRequests" overrideModeDefault="Allow" />
+        <section name="traceProviderDefinitions" overrideModeDefault="Deny" />
+      </sectionGroup>
+      <section name="urlCompression" overrideModeDefault="Allow" />
+      <section name="validation" overrideModeDefault="Allow" />
+      <sectionGroup name="webdav">
+        <section name="globalSettings" overrideModeDefault="Deny" />
+        <section name="authoring" overrideModeDefault="Deny" />
+        <section name="authoringRules" overrideModeDefault="Deny" />
+      </sectionGroup>
+      <sectionGroup name="rewrite">
+        <section name="allowedServerVariables" overrideModeDefault="Deny" />
+        <section name="rules" overrideModeDefault="Allow" />
+        <section name="outboundRules" overrideModeDefault="Allow" />
+        <section name="globalRules" overrideModeDefault="Deny" allowDefinition="AppHostOnly" />
+        <section name="providers" overrideModeDefault="Allow" />
+        <section name="rewriteMaps" overrideModeDefault="Allow" />
+      </sectionGroup>
+      <section name="webSocket" overrideModeDefault="Deny" />
+      <section name="aspNetCore" overrideModeDefault="Allow" />
+    </sectionGroup>
+  </configSections>
+  <configProtectedData>
+    <providers>
+      <add name="IISWASOnlyRsaProvider" type="" description="Uses RsaCryptoServiceProvider to encrypt and decrypt" keyContainerName="iisWasKey" cspProviderName="" useMachineContainer="true" useOAEP="false" />
+      <add name="AesProvider" type="Microsoft.ApplicationHost.AesProtectedConfigurationProvider" description="Uses an AES session key to encrypt and decrypt" keyContainerName="iisConfigurationKey" cspProviderName="" useOAEP="false" useMachineContainer="true" sessionKey="AQIAAA5mAAAApAAA/HKxkz6alrlAPez0IUgujj/6k3WxCDriHp6jvpv3yEZmo7h6SMzGLxo4mTrIQVHSkB7tmElHKfUFTzE2BWF7nFWHY6Z6qmGBauFzwJMwESjril7Gjz69RBFH259HQ6aRDq9Xfx7U7H4HtdmnKNqGjgl/hwPQBGeIlWiDh+sYv3vKB0QU971tjX6H2B+9armlnC8UOuA6JYMDMI/VLLL16sng0fWAy5JYe0YVABVjiAWDW264RZW9Tr1Oax4qHZKg+SdjULxeOc2YmpX+d0yeITo1HkPF1hN1gHpIPIUDo05ilHUNfR3OkjVCIQK4cFKCq1s8NH+y+13MxUC4Fn1AlQ==" />
+      <add name="IISWASOnlyAesProvider" type="Microsoft.ApplicationHost.AesProtectedConfigurationProvider" description="Uses an AES session key to encrypt and decrypt" keyContainerName="iisWasKey" cspProviderName="" useOAEP="false" useMachineContainer="true" sessionKey="AQIAAA5mAAAApAAALmU8lTC+v2qtfQiiiquvvLpUQqKLEXs+jSKoWCM/uPhyB++k4dwug19mGidNK5FYiWK2KYE1yhjVJcbp12E98Q0R2nT7eBiCMY2JairxQ591rqABK7keGaIjwH7PwGzSpILl3RJ4YFvJ/7ZXEJxeDZIjW8ZxWVXx+/VyHs9U3WguLEkgMUX3jrxJi8LouxaIVPJAv/YQ1ZCWs8zImitxX/C/7o7yaIxznfsN5nGQzQfpUDPeby99aw2zPVTtZI2LaWIBON8guABvZ6JtJVDWmfdK6sodbnwdZkr6/Z2rfvamT1dC1SpQrGG7ulR/f9/GXvCaW10ZVKxekBF/CYlNMg==" />
+    </providers>
+  </configProtectedData>
+  <system.applicationHost>
+    <applicationPools>
+      <add name="Clr4IntegratedAppPool" managedRuntimeVersion="v4.0" managedPipelineMode="Integrated" CLRConfigFile="%IIS_USER_HOME%\config\aspnet.config" autoStart="true" />
+      <add name="Clr4ClassicAppPool" managedRuntimeVersion="v4.0" managedPipelineMode="Classic" CLRConfigFile="%IIS_USER_HOME%\config\aspnet.config" autoStart="true" />
+      <add name="Clr2IntegratedAppPool" managedRuntimeVersion="v2.0" managedPipelineMode="Integrated" CLRConfigFile="%IIS_USER_HOME%\config\aspnet.config" autoStart="true" />
+      <add name="Clr2ClassicAppPool" managedRuntimeVersion="v2.0" managedPipelineMode="Classic" CLRConfigFile="%IIS_USER_HOME%\config\aspnet.config" autoStart="true" />
+      <add name="UnmanagedClassicAppPool" managedRuntimeVersion="" managedPipelineMode="Classic" autoStart="true" />
+      <add name="WIDESEAWCS_Server AppPool" managedRuntimeVersion="" />
+      <applicationPoolDefaults managedRuntimeVersion="v4.0">
+        <processModel loadUserProfile="true" setProfileEnvironment="false" />
+      </applicationPoolDefaults>
+    </applicationPools>
+    <!--
 
           The <listenerAdapters> section defines the protocols with which the
           Windows Process Activation Service (WAS) binds.
 
         -->
-        <listenerAdapters>
-            <add name="http" />
-        </listenerAdapters>
-
-        <sites>
-            <site name="WebSite1" id="1" serverAutoStart="true">
-                <application path="/">
-                    <virtualDirectory path="/" physicalPath="%IIS_SITES_HOME%\WebSite1" />
-                </application>
-                <bindings>
-                    <binding protocol="http" bindingInformation=":8080:localhost" />
-                </bindings>
-            </site>
-            <siteDefaults>
-                <!-- To enable logging, please change the below attribute "enabled" to "true" -->
-                <logFile logFormat="W3C" directory="%AppData%\Microsoft\IISExpressLogs" enabled="false" />
-                <traceFailedRequestsLogging directory="%AppData%\Microsoft" enabled="false" maxLogFileSizeKB="1024" />
-            </siteDefaults>
-            <applicationDefaults applicationPool="Clr4IntegratedAppPool" />
-            <virtualDirectoryDefaults allowSubDirConfig="true" />
-        </sites>
-
-        <webLimits />
-
-    </system.applicationHost>
-
-    <system.webServer>
-
-        <serverRuntime />
-
-        <asp scriptErrorSentToBrowser="true">
-            <cache diskTemplateCacheDirectory="%TEMP%\iisexpress\ASP Compiled Templates" />
-            <limits />
-        </asp>
-
-        <caching enabled="true" enableKernelCache="true">
-        </caching>
-
-        <cgi />
-
-        <defaultDocument enabled="true">
-            <files>
-                <add value="Default.htm" />
-                <add value="Default.asp" />
-                <add value="index.htm" />
-                <add value="index.html" />
-                <add value="iisstart.htm" />
-                <add value="default.aspx" />
-            </files>
-        </defaultDocument>
-
-        <directoryBrowse enabled="false" />
-
-        <fastCgi />
-
-        <!--
+    <listenerAdapters>
+      <add name="http" />
+    </listenerAdapters>
+    <sites>
+      <site name="WebSite1" id="1" serverAutoStart="true">
+        <application path="/">
+          <virtualDirectory path="/" physicalPath="%IIS_SITES_HOME%\WebSite1" />
+        </application>
+        <bindings>
+          <binding protocol="http" bindingInformation=":8080:localhost" />
+        </bindings>
+      </site>
+      <site name="WIDESEAWCS_Server" id="2">
+        <application path="/" applicationPool="WIDESEAWCS_Server AppPool">
+          <virtualDirectory path="/" physicalPath="E:\WIDESEAWCS\InfrastructureWCS\WIDESEAWCS_Server\WIDESEAWCS_Server" />
+        </application>
+        <bindings>
+          <binding protocol="http" bindingInformation="*:27002:localhost" />
+        </bindings>
+      </site>
+      <siteDefaults>
+        <!-- To enable logging, please change the below attribute "enabled" to "true" -->
+        <logFile logFormat="W3C" directory="%AppData%\Microsoft\IISExpressLogs" enabled="false" />
+        <traceFailedRequestsLogging directory="%AppData%\Microsoft" enabled="false" maxLogFileSizeKB="1024" />
+      </siteDefaults>
+      <applicationDefaults applicationPool="Clr4IntegratedAppPool" />
+      <virtualDirectoryDefaults allowSubDirConfig="true" />
+    </sites>
+    <webLimits />
+  </system.applicationHost>
+  <system.webServer>
+    <serverRuntime />
+    <asp scriptErrorSentToBrowser="true">
+      <cache diskTemplateCacheDirectory="%TEMP%\iisexpress\ASP Compiled Templates" />
+      <limits />
+    </asp>
+    <caching enabled="true" enableKernelCache="true"></caching>
+    <cgi />
+    <defaultDocument enabled="true">
+      <files>
+        <add value="Default.htm" />
+        <add value="Default.asp" />
+        <add value="index.htm" />
+        <add value="index.html" />
+        <add value="iisstart.htm" />
+        <add value="default.aspx" />
+      </files>
+    </defaultDocument>
+    <directoryBrowse enabled="false" />
+    <fastCgi />
+    <!--
 
           The <globalModules> section defines all native-code modules.
           To enable a module, specify it in the <modules> section.
 
         -->
-        <globalModules>
-            <add name="HttpLoggingModule" image="%IIS_BIN%\loghttp.dll" />
-            <add name="UriCacheModule" image="%IIS_BIN%\cachuri.dll" />
-            <add name="TokenCacheModule" image="%IIS_BIN%\cachtokn.dll" />
-            <add name="DynamicCompressionModule" image="%IIS_BIN%\compdyn.dll" />
-            <add name="StaticCompressionModule" image="%IIS_BIN%\compstat.dll" />
-            <add name="DefaultDocumentModule" image="%IIS_BIN%\defdoc.dll" />
-            <add name="DirectoryListingModule" image="%IIS_BIN%\dirlist.dll" />
-            <add name="ProtocolSupportModule" image="%IIS_BIN%\protsup.dll" />
-            <add name="HttpRedirectionModule" image="%IIS_BIN%\redirect.dll" />
-            <add name="ServerSideIncludeModule" image="%IIS_BIN%\iis_ssi.dll" />
-            <add name="StaticFileModule" image="%IIS_BIN%\static.dll" />
-            <add name="AnonymousAuthenticationModule" image="%IIS_BIN%\authanon.dll" />
-            <add name="CertificateMappingAuthenticationModule" image="%IIS_BIN%\authcert.dll" />
-            <add name="UrlAuthorizationModule" image="%IIS_BIN%\urlauthz.dll" />
-            <add name="BasicAuthenticationModule" image="%IIS_BIN%\authbas.dll" />
-            <add name="WindowsAuthenticationModule" image="%IIS_BIN%\authsspi.dll" />
-            <add name="IISCertificateMappingAuthenticationModule" image="%IIS_BIN%\authmap.dll" />
-            <add name="IpRestrictionModule" image="%IIS_BIN%\iprestr.dll" />
-            <add name="DynamicIpRestrictionModule" image="%IIS_BIN%\diprestr.dll" />
-            <add name="RequestFilteringModule" image="%IIS_BIN%\modrqflt.dll" />
-            <add name="CustomLoggingModule" image="%IIS_BIN%\logcust.dll" />
-            <add name="CustomErrorModule" image="%IIS_BIN%\custerr.dll" />
-            <add name="FailedRequestsTracingModule" image="%IIS_BIN%\iisfreb.dll" />
-            <add name="RequestMonitorModule" image="%IIS_BIN%\iisreqs.dll" />
-            <add name="IsapiModule" image="%IIS_BIN%\isapi.dll" />
-            <add name="IsapiFilterModule" image="%IIS_BIN%\filter.dll" />
-            <add name="CgiModule" image="%IIS_BIN%\cgi.dll" />
-            <add name="FastCgiModule" image="%IIS_BIN%\iisfcgi.dll" />
-<!--            <add name="WebDAVModule" image="%IIS_BIN%\webdav.dll" /> -->
-            <add name="RewriteModule" image="%IIS_BIN%\rewrite.dll" />
-            <add name="ConfigurationValidationModule" image="%IIS_BIN%\validcfg.dll" />
-            <add name="WebSocketModule" image="%IIS_BIN%\iiswsock.dll" />
-            <add name="WebMatrixSupportModule" image="%IIS_BIN%\webmatrixsup.dll" />
-            <add name="ManagedEngine" image="%windir%\Microsoft.NET\Framework\v2.0.50727\webengine.dll" preCondition="integratedMode,runtimeVersionv2.0,bitness32" />
-            <add name="ManagedEngine64" image="%windir%\Microsoft.NET\Framework64\v2.0.50727\webengine.dll" preCondition="integratedMode,runtimeVersionv2.0,bitness64" />
-            <add name="ManagedEngineV4.0_32bit" image="%windir%\Microsoft.NET\Framework\v4.0.30319\webengine4.dll" preCondition="integratedMode,runtimeVersionv4.0,bitness32" />
-            <add name="ManagedEngineV4.0_64bit" image="%windir%\Microsoft.NET\Framework64\v4.0.30319\webengine4.dll" preCondition="integratedMode,runtimeVersionv4.0,bitness64" />
-            <add name="ApplicationInitializationModule" image="%IIS_BIN%\warmup.dll" />
-            <add name="AspNetCoreModule" image="%IIS_BIN%\aspnetcore.dll" />
-            <add name="AspNetCoreModuleV2" image="%IIS_BIN%\Asp.Net Core Module\V2\aspnetcorev2.dll" />
-        </globalModules>
-
-        <httpCompression directory="%TEMP%">
-            <scheme name="gzip" dll="%IIS_BIN%\gzip.dll" />
-            <dynamicTypes>
-                <add mimeType="text/*" enabled="true" />
-                <add mimeType="message/*" enabled="true" />
-                <add mimeType="application/x-javascript" enabled="true" />
-                <add mimeType="application/javascript" enabled="true" />
-                <add mimeType="*/*" enabled="false" />
-                <add mimeType="text/event-stream" enabled="false" />
-            </dynamicTypes>
-            <staticTypes>
-                <add mimeType="text/*" enabled="true" />
-                <add mimeType="message/*" enabled="true" />
-                <add mimeType="application/javascript" enabled="true" />
-                <add mimeType="application/atom+xml" enabled="true" />
-                <add mimeType="application/xaml+xml" enabled="true" />
-                <add mimeType="image/svg+xml" enabled="true" />
-                <add mimeType="*/*" enabled="false" />
-            </staticTypes>
-        </httpCompression>
-
-        <httpErrors lockAttributes="allowAbsolutePathsWhenDelegated,defaultPath">
-            <error statusCode="401" prefixLanguageFilePath="%IIS_BIN%\custerr" path="401.htm" />
-            <error statusCode="403" prefixLanguageFilePath="%IIS_BIN%\custerr" path="403.htm" />
-            <error statusCode="404" prefixLanguageFilePath="%IIS_BIN%\custerr" path="404.htm" />
-            <error statusCode="405" prefixLanguageFilePath="%IIS_BIN%\custerr" path="405.htm" />
-            <error statusCode="406" prefixLanguageFilePath="%IIS_BIN%\custerr" path="406.htm" />
-            <error statusCode="412" prefixLanguageFilePath="%IIS_BIN%\custerr" path="412.htm" />
-            <error statusCode="500" prefixLanguageFilePath="%IIS_BIN%\custerr" path="500.htm" />
-            <error statusCode="501" prefixLanguageFilePath="%IIS_BIN%\custerr" path="501.htm" />
-            <error statusCode="502" prefixLanguageFilePath="%IIS_BIN%\custerr" path="502.htm" />
-        </httpErrors>
-
-        <httpLogging dontLog="false" />
-
-        <httpProtocol>
-            <customHeaders>
-                <clear />
-                <add name="X-Powered-By" value="ASP.NET" />
-            </customHeaders>
-            <redirectHeaders>
-                <clear />
-            </redirectHeaders>
-        </httpProtocol>
-
-        <httpRedirect enabled="false" />
-
-        <httpTracing />
-
-        <isapiFilters>
-            <filter name="ASP.Net_2.0.50727-64" path="%windir%\Microsoft.NET\Framework64\v2.0.50727\aspnet_filter.dll" enableCache="true" preCondition="bitness64,runtimeVersionv2.0" />
-            <filter name="ASP.Net_2.0.50727.0" path="%windir%\Microsoft.NET\Framework\v2.0.50727\aspnet_filter.dll" enableCache="true" preCondition="bitness32,runtimeVersionv2.0" />
-            <filter name="ASP.Net_2.0_for_v1.1" path="%windir%\Microsoft.NET\Framework\v2.0.50727\aspnet_filter.dll" enableCache="true" preCondition="runtimeVersionv1.1" />
-            <filter name="ASP.Net_4.0_32bit" path="%windir%\Microsoft.NET\Framework\v4.0.30319\aspnet_filter.dll" enableCache="true" preCondition="bitness32,runtimeVersionv4.0" />
-            <filter name="ASP.Net_4.0_64bit" path="%windir%\Microsoft.NET\Framework64\v4.0.30319\aspnet_filter.dll" enableCache="true" preCondition="bitness64,runtimeVersionv4.0" />
-        </isapiFilters>
-
-        <odbcLogging />
-
-        <security>
-
-            <access sslFlags="None" />
-
-            <applicationDependencies>
-                <application name="Active Server Pages" groupId="ASP" />
-            </applicationDependencies>
-
-            <authentication>
-
-                <anonymousAuthentication enabled="true" userName="" />
-
-                <basicAuthentication enabled="false" />
-
-                <clientCertificateMappingAuthentication enabled="false" />
-
-                <digestAuthentication enabled="false" />
-
-                <iisClientCertificateMappingAuthentication enabled="false">
-                </iisClientCertificateMappingAuthentication>
-
-                <windowsAuthentication enabled="false">
-                    <providers>
-                        <add value="Negotiate" />
-                        <add value="NTLM" />
-                    </providers>
-                </windowsAuthentication>
-
-            </authentication>
-
-            <authorization>
-                <add accessType="Allow" users="*" />
-            </authorization>
-
-            <ipSecurity allowUnlisted="true" />
-
-            <isapiCgiRestriction notListedIsapisAllowed="true" notListedCgisAllowed="true">
-                <add path="%windir%\Microsoft.NET\Framework64\v4.0.30319\webengine4.dll" allowed="true" groupId="ASP.NET_v4.0" description="ASP.NET_v4.0" />
-                <add path="%windir%\Microsoft.NET\Framework\v4.0.30319\webengine4.dll" allowed="true" groupId="ASP.NET_v4.0" description="ASP.NET_v4.0" />
-                <add path="%windir%\Microsoft.NET\Framework64\v2.0.50727\aspnet_isapi.dll" allowed="true" groupId="ASP.NET v2.0.50727" description="ASP.NET v2.0.50727" />
-                <add path="%windir%\Microsoft.NET\Framework\v2.0.50727\aspnet_isapi.dll" allowed="true" groupId="ASP.NET v2.0.50727" description="ASP.NET v2.0.50727" />
-            </isapiCgiRestriction>
-
-            <requestFiltering>
-                <fileExtensions allowUnlisted="true" applyToWebDAV="true">
-                    <add fileExtension=".asa" allowed="false" />
-                    <add fileExtension=".asax" allowed="false" />
-                    <add fileExtension=".ascx" allowed="false" />
-                    <add fileExtension=".master" allowed="false" />
-                    <add fileExtension=".skin" allowed="false" />
-                    <add fileExtension=".browser" allowed="false" />
-                    <add fileExtension=".sitemap" allowed="false" />
-                    <add fileExtension=".config" allowed="false" />
-                    <add fileExtension=".cs" allowed="false" />
-                    <add fileExtension=".csproj" allowed="false" />
-                    <add fileExtension=".vb" allowed="false" />
-                    <add fileExtension=".vbproj" allowed="false" />
-                    <add fileExtension=".webinfo" allowed="false" />
-                    <add fileExtension=".licx" allowed="false" />
-                    <add fileExtension=".resx" allowed="false" />
-                    <add fileExtension=".resources" allowed="false" />
-                    <add fileExtension=".mdb" allowed="false" />
-                    <add fileExtension=".vjsproj" allowed="false" />
-                    <add fileExtension=".java" allowed="false" />
-                    <add fileExtension=".jsl" allowed="false" />
-                    <add fileExtension=".ldb" allowed="false" />
-                    <add fileExtension=".dsdgm" allowed="false" />
-                    <add fileExtension=".ssdgm" allowed="false" />
-                    <add fileExtension=".lsad" allowed="false" />
-                    <add fileExtension=".ssmap" allowed="false" />
-                    <add fileExtension=".cd" allowed="false" />
-                    <add fileExtension=".dsprototype" allowed="false" />
-                    <add fileExtension=".lsaprototype" allowed="false" />
-                    <add fileExtension=".sdm" allowed="false" />
-                    <add fileExtension=".sdmDocument" allowed="false" />
-                    <add fileExtension=".mdf" allowed="false" />
-                    <add fileExtension=".ldf" allowed="false" />
-                    <add fileExtension=".ad" allowed="false" />
-                    <add fileExtension=".dd" allowed="false" />
-                    <add fileExtension=".ldd" allowed="false" />
-                    <add fileExtension=".sd" allowed="false" />
-                    <add fileExtension=".adprototype" allowed="false" />
-                    <add fileExtension=".lddprototype" allowed="false" />
-                    <add fileExtension=".exclude" allowed="false" />
-                    <add fileExtension=".refresh" allowed="false" />
-                    <add fileExtension=".compiled" allowed="false" />
-                    <add fileExtension=".msgx" allowed="false" />
-                    <add fileExtension=".vsdisco" allowed="false" />
-                    <add fileExtension=".rules" allowed="false" />
-                </fileExtensions>
-                <verbs allowUnlisted="true" applyToWebDAV="true" />
-                <hiddenSegments applyToWebDAV="true">
-                    <add segment="web.config" />
-                    <add segment="bin" />
-                    <add segment="App_code" />
-                    <add segment="App_GlobalResources" />
-                    <add segment="App_LocalResources" />
-                    <add segment="App_WebReferences" />
-                    <add segment="App_Data" />
-                    <add segment="App_Browsers" />
-                </hiddenSegments>
-            </requestFiltering>
-
-        </security>
-
-        <serverSideInclude ssiExecDisable="false" />
-
-        <staticContent lockAttributes="isDocFooterFileName">
-            <mimeMap fileExtension=".323" mimeType="text/h323" />
-            <mimeMap fileExtension=".3g2" mimeType="video/3gpp2" />
-            <mimeMap fileExtension=".3gp2" mimeType="video/3gpp2" />
-            <mimeMap fileExtension=".3gp" mimeType="video/3gpp" />
-            <mimeMap fileExtension=".3gpp" mimeType="video/3gpp" />
-            <mimeMap fileExtension=".aac" mimeType="audio/aac" />
-            <mimeMap fileExtension=".aaf" mimeType="application/octet-stream" />
-            <mimeMap fileExtension=".aca" mimeType="application/octet-stream" />
-            <mimeMap fileExtension=".accdb" mimeType="application/msaccess" />
-            <mimeMap fileExtension=".accde" mimeType="application/msaccess" />
-            <mimeMap fileExtension=".accdt" mimeType="application/msaccess" />
-            <mimeMap fileExtension=".acx" mimeType="application/internet-property-stream" />
-            <mimeMap fileExtension=".adt" mimeType="audio/vnd.dlna.adts" />
-            <mimeMap fileExtension=".adts" mimeType="audio/vnd.dlna.adts" />
-            <mimeMap fileExtension=".afm" mimeType="application/octet-stream" />
-            <mimeMap fileExtension=".ai" mimeType="application/postscript" />
-            <mimeMap fileExtension=".aif" mimeType="audio/x-aiff" />
-            <mimeMap fileExtension=".aifc" mimeType="audio/aiff" />
-            <mimeMap fileExtension=".aiff" mimeType="audio/aiff" />
-            <mimeMap fileExtension=".appcache" mimeType="text/cache-manifest" />
-            <mimeMap fileExtension=".application" mimeType="application/x-ms-application" />
-            <mimeMap fileExtension=".art" mimeType="image/x-jg" />
-            <mimeMap fileExtension=".asd" mimeType="application/octet-stream" />
-            <mimeMap fileExtension=".asf" mimeType="video/x-ms-asf" />
-            <mimeMap fileExtension=".asi" mimeType="application/octet-stream" />
-            <mimeMap fileExtension=".asm" mimeType="text/plain" />
-            <mimeMap fileExtension=".asr" mimeType="video/x-ms-asf" />
-            <mimeMap fileExtension=".asx" mimeType="video/x-ms-asf" />
-            <mimeMap fileExtension=".atom" mimeType="application/atom+xml" />
-            <mimeMap fileExtension=".au" mimeType="audio/basic" />
-            <mimeMap fileExtension=".avi" mimeType="video/avi" />
-            <mimeMap fileExtension=".axs" mimeType="application/olescript" />
-            <mimeMap fileExtension=".bas" mimeType="text/plain" />
-            <mimeMap fileExtension=".bcpio" mimeType="application/x-bcpio" />
-            <mimeMap fileExtension=".bin" mimeType="application/octet-stream" />
-            <mimeMap fileExtension=".bmp" mimeType="image/bmp" />
-            <mimeMap fileExtension=".c" mimeType="text/plain" />
-            <mimeMap fileExtension=".cab" mimeType="application/vnd.ms-cab-compressed" />
-            <mimeMap fileExtension=".calx" mimeType="application/vnd.ms-office.calx" />
-            <mimeMap fileExtension=".cat" mimeType="application/vnd.ms-pki.seccat" />
-            <mimeMap fileExtension=".cdf" mimeType="application/x-cdf" />
-            <mimeMap fileExtension=".chm" mimeType="application/octet-stream" />
-            <mimeMap fileExtension=".class" mimeType="application/x-java-applet" />
-            <mimeMap fileExtension=".clp" mimeType="application/x-msclip" />
-            <mimeMap fileExtension=".cmx" mimeType="image/x-cmx" />
-            <mimeMap fileExtension=".cnf" mimeType="text/plain" />
-            <mimeMap fileExtension=".cod" mimeType="image/cis-cod" />
-            <mimeMap fileExtension=".cpio" mimeType="application/x-cpio" />
-            <mimeMap fileExtension=".cpp" mimeType="text/plain" />
-            <mimeMap fileExtension=".crd" mimeType="application/x-mscardfile" />
-            <mimeMap fileExtension=".crl" mimeType="application/pkix-crl" />
-            <mimeMap fileExtension=".crt" mimeType="application/x-x509-ca-cert" />
-            <mimeMap fileExtension=".csh" mimeType="application/x-csh" />
-            <mimeMap fileExtension=".css" mimeType="text/css" />
-            <mimeMap fileExtension=".csv" mimeType="application/octet-stream" />
-            <mimeMap fileExtension=".cur" mimeType="application/octet-stream" />
-            <mimeMap fileExtension=".dcr" mimeType="application/x-director" />
-            <mimeMap fileExtension=".deploy" mimeType="application/octet-stream" />
-            <mimeMap fileExtension=".der" mimeType="application/x-x509-ca-cert" />
-            <mimeMap fileExtension=".dib" mimeType="image/bmp" />
-            <mimeMap fileExtension=".dir" mimeType="application/x-director" />
-            <mimeMap fileExtension=".disco" mimeType="text/xml" />
-            <mimeMap fileExtension=".dll" mimeType="application/x-msdownload" />
-            <mimeMap fileExtension=".dll.config" mimeType="text/xml" />
-            <mimeMap fileExtension=".dlm" mimeType="text/dlm" />
-            <mimeMap fileExtension=".doc" mimeType="application/msword" />
-            <mimeMap fileExtension=".docm" mimeType="application/vnd.ms-word.document.macroEnabled.12" />
-            <mimeMap fileExtension=".docx" mimeType="application/vnd.openxmlformats-officedocument.wordprocessingml.document" />
-            <mimeMap fileExtension=".dot" mimeType="application/msword" />
-            <mimeMap fileExtension=".dotm" mimeType="application/vnd.ms-word.template.macroEnabled.12" />
-            <mimeMap fileExtension=".dotx" mimeType="application/vnd.openxmlformats-officedocument.wordprocessingml.template" />
-            <mimeMap fileExtension=".dsp" mimeType="application/octet-stream" />
-            <mimeMap fileExtension=".dtd" mimeType="text/xml" />
-            <mimeMap fileExtension=".dvi" mimeType="application/x-dvi" />
-            <mimeMap fileExtension=".dvr-ms" mimeType="video/x-ms-dvr" />
-            <mimeMap fileExtension=".dwf" mimeType="drawing/x-dwf" />
-            <mimeMap fileExtension=".dwp" mimeType="application/octet-stream" />
-            <mimeMap fileExtension=".dxr" mimeType="application/x-director" />
-            <mimeMap fileExtension=".eml" mimeType="message/rfc822" />
-            <mimeMap fileExtension=".emz" mimeType="application/octet-stream" />
-            <mimeMap fileExtension=".eot" mimeType="application/vnd.ms-fontobject" />
-            <mimeMap fileExtension=".eps" mimeType="application/postscript" />
-            <mimeMap fileExtension=".esd" mimeType="application/vnd.ms-cab-compressed" />
-            <mimeMap fileExtension=".etx" mimeType="text/x-setext" />
-            <mimeMap fileExtension=".evy" mimeType="application/envoy" />
-            <mimeMap fileExtension=".exe" mimeType="application/octet-stream" />
-            <mimeMap fileExtension=".exe.config" mimeType="text/xml" />
-            <mimeMap fileExtension=".fdf" mimeType="application/vnd.fdf" />
-            <mimeMap fileExtension=".fif" mimeType="application/fractals" />
-            <mimeMap fileExtension=".fla" mimeType="application/octet-stream" />
-            <mimeMap fileExtension=".flr" mimeType="x-world/x-vrml" />
-            <mimeMap fileExtension=".flv" mimeType="video/x-flv" />
-            <mimeMap fileExtension=".gif" mimeType="image/gif" />
-            <mimeMap fileExtension=".glb" mimeType="model/gltf-binary" />
-            <mimeMap fileExtension=".gtar" mimeType="application/x-gtar" />
-            <mimeMap fileExtension=".gz" mimeType="application/x-gzip" />
-            <mimeMap fileExtension=".h" mimeType="text/plain" />
-            <mimeMap fileExtension=".hdf" mimeType="application/x-hdf" />
-            <mimeMap fileExtension=".hdml" mimeType="text/x-hdml" />
-            <mimeMap fileExtension=".hhc" mimeType="application/x-oleobject" />
-            <mimeMap fileExtension=".hhk" mimeType="application/octet-stream" />
-            <mimeMap fileExtension=".hhp" mimeType="application/octet-stream" />
-            <mimeMap fileExtension=".hlp" mimeType="application/winhlp" />
-            <mimeMap fileExtension=".hqx" mimeType="application/mac-binhex40" />
-            <mimeMap fileExtension=".hta" mimeType="application/hta" />
-            <mimeMap fileExtension=".htc" mimeType="text/x-component" />
-            <mimeMap fileExtension=".htm" mimeType="text/html" />
-            <mimeMap fileExtension=".html" mimeType="text/html" />
-            <mimeMap fileExtension=".htt" mimeType="text/webviewhtml" />
-            <mimeMap fileExtension=".hxt" mimeType="text/html" />
-            <mimeMap fileExtension=".ico" mimeType="image/x-icon" />
-            <mimeMap fileExtension=".ics" mimeType="text/calendar" />
-            <mimeMap fileExtension=".ief" mimeType="image/ief" />
-            <mimeMap fileExtension=".iii" mimeType="application/x-iphone" />
-            <mimeMap fileExtension=".inf" mimeType="application/octet-stream" />
-            <mimeMap fileExtension=".ins" mimeType="application/x-internet-signup" />
-            <mimeMap fileExtension=".isp" mimeType="application/x-internet-signup" />
-            <mimeMap fileExtension=".IVF" mimeType="video/x-ivf" />
-            <mimeMap fileExtension=".jar" mimeType="application/java-archive" />
-            <mimeMap fileExtension=".java" mimeType="application/octet-stream" />
-            <mimeMap fileExtension=".jck" mimeType="application/liquidmotion" />
-            <mimeMap fileExtension=".jcz" mimeType="application/liquidmotion" />
-            <mimeMap fileExtension=".jfif" mimeType="image/pjpeg" />
-            <mimeMap fileExtension=".jpb" mimeType="application/octet-stream" />
-            <mimeMap fileExtension=".jpe" mimeType="image/jpeg" />
-            <mimeMap fileExtension=".jpeg" mimeType="image/jpeg" />
-            <mimeMap fileExtension=".jpg" mimeType="image/jpeg" />
-            <mimeMap fileExtension=".js" mimeType="application/javascript" />
-            <mimeMap fileExtension=".json" mimeType="application/json" />
-            <mimeMap fileExtension=".jsonld" mimeType="application/ld+json" />
-            <mimeMap fileExtension=".jsx" mimeType="text/jscript" />
-            <mimeMap fileExtension=".latex" mimeType="application/x-latex" />
-            <mimeMap fileExtension=".less" mimeType="text/css" />
-            <mimeMap fileExtension=".lit" mimeType="application/x-ms-reader" />
-            <mimeMap fileExtension=".lpk" mimeType="application/octet-stream" />
-            <mimeMap fileExtension=".lsf" mimeType="video/x-la-asf" />
-            <mimeMap fileExtension=".lsx" mimeType="video/x-la-asf" />
-            <mimeMap fileExtension=".lzh" mimeType="application/octet-stream" />
-            <mimeMap fileExtension=".m13" mimeType="application/x-msmediaview" />
-            <mimeMap fileExtension=".m14" mimeType="application/x-msmediaview" />
-            <mimeMap fileExtension=".m1v" mimeType="video/mpeg" />
-            <mimeMap fileExtension=".m2ts" mimeType="video/vnd.dlna.mpeg-tts" />
-            <mimeMap fileExtension=".m3u" mimeType="audio/x-mpegurl" />
-            <mimeMap fileExtension=".m4a" mimeType="audio/mp4" />
-            <mimeMap fileExtension=".m4v" mimeType="video/mp4" />
-            <mimeMap fileExtension=".man" mimeType="application/x-troff-man" />
-            <mimeMap fileExtension=".manifest" mimeType="application/x-ms-manifest" />
-            <mimeMap fileExtension=".map" mimeType="text/plain" />
-            <mimeMap fileExtension=".mdb" mimeType="application/x-msaccess" />
-            <mimeMap fileExtension=".mdp" mimeType="application/octet-stream" />
-            <mimeMap fileExtension=".me" mimeType="application/x-troff-me" />
-            <mimeMap fileExtension=".mht" mimeType="message/rfc822" />
-            <mimeMap fileExtension=".mhtml" mimeType="message/rfc822" />
-            <mimeMap fileExtension=".mid" mimeType="audio/mid" />
-            <mimeMap fileExtension=".midi" mimeType="audio/mid" />
-            <mimeMap fileExtension=".mix" mimeType="application/octet-stream" />
-            <mimeMap fileExtension=".mmf" mimeType="application/x-smaf" />
-            <mimeMap fileExtension=".mno" mimeType="text/xml" />
-            <mimeMap fileExtension=".mny" mimeType="application/x-msmoney" />
-            <mimeMap fileExtension=".mov" mimeType="video/quicktime" />
-            <mimeMap fileExtension=".movie" mimeType="video/x-sgi-movie" />
-            <mimeMap fileExtension=".mp2" mimeType="video/mpeg" />
-            <mimeMap fileExtension=".mp3" mimeType="audio/mpeg" />
-            <mimeMap fileExtension=".mp4" mimeType="video/mp4" />
-            <mimeMap fileExtension=".mp4v" mimeType="video/mp4" />
-            <mimeMap fileExtension=".mpa" mimeType="video/mpeg" />
-            <mimeMap fileExtension=".mpe" mimeType="video/mpeg" />
-            <mimeMap fileExtension=".mpeg" mimeType="video/mpeg" />
-            <mimeMap fileExtension=".mpg" mimeType="video/mpeg" />
-            <mimeMap fileExtension=".mpp" mimeType="application/vnd.ms-project" />
-            <mimeMap fileExtension=".mpv2" mimeType="video/mpeg" />
-            <mimeMap fileExtension=".ms" mimeType="application/x-troff-ms" />
-            <mimeMap fileExtension=".msi" mimeType="application/octet-stream" />
-            <mimeMap fileExtension=".mso" mimeType="application/octet-stream" />
-            <mimeMap fileExtension=".mvb" mimeType="application/x-msmediaview" />
-            <mimeMap fileExtension=".mvc" mimeType="application/x-miva-compiled" />
-            <mimeMap fileExtension=".nc" mimeType="application/x-netcdf" />
-            <mimeMap fileExtension=".nsc" mimeType="video/x-ms-asf" />
-            <mimeMap fileExtension=".nws" mimeType="message/rfc822" />
-            <mimeMap fileExtension=".ocx" mimeType="application/octet-stream" />
-            <mimeMap fileExtension=".oda" mimeType="application/oda" />
-            <mimeMap fileExtension=".odc" mimeType="text/x-ms-odc" />
-            <mimeMap fileExtension=".ods" mimeType="application/oleobject" />
-            <mimeMap fileExtension=".oga" mimeType="audio/ogg" />
-            <mimeMap fileExtension=".ogg" mimeType="video/ogg" />
-            <mimeMap fileExtension=".ogv" mimeType="video/ogg" />
-            <mimeMap fileExtension=".one" mimeType="application/onenote" />
-            <mimeMap fileExtension=".onea" mimeType="application/onenote" />
-            <mimeMap fileExtension=".onetoc" mimeType="application/onenote" />
-            <mimeMap fileExtension=".onetoc2" mimeType="application/onenote" />
-            <mimeMap fileExtension=".onetmp" mimeType="application/onenote" />
-            <mimeMap fileExtension=".onepkg" mimeType="application/onenote" />
-            <mimeMap fileExtension=".osdx" mimeType="application/opensearchdescription+xml" />
-            <mimeMap fileExtension=".otf" mimeType="font/otf" />
-            <mimeMap fileExtension=".p10" mimeType="application/pkcs10" />
-            <mimeMap fileExtension=".p12" mimeType="application/x-pkcs12" />
-            <mimeMap fileExtension=".p7b" mimeType="application/x-pkcs7-certificates" />
-            <mimeMap fileExtension=".p7c" mimeType="application/pkcs7-mime" />
-            <mimeMap fileExtension=".p7m" mimeType="application/pkcs7-mime" />
-            <mimeMap fileExtension=".p7r" mimeType="application/x-pkcs7-certreqresp" />
-            <mimeMap fileExtension=".p7s" mimeType="application/pkcs7-signature" />
-            <mimeMap fileExtension=".pbm" mimeType="image/x-portable-bitmap" />
-            <mimeMap fileExtension=".pcx" mimeType="application/octet-stream" />
-            <mimeMap fileExtension=".pcz" mimeType="application/octet-stream" />
-            <mimeMap fileExtension=".pdf" mimeType="application/pdf" />
-            <mimeMap fileExtension=".pfb" mimeType="application/octet-stream" />
-            <mimeMap fileExtension=".pfm" mimeType="application/octet-stream" />
-            <mimeMap fileExtension=".pfx" mimeType="application/x-pkcs12" />
-            <mimeMap fileExtension=".pgm" mimeType="image/x-portable-graymap" />
-            <mimeMap fileExtension=".pko" mimeType="application/vnd.ms-pki.pko" />
-            <mimeMap fileExtension=".pma" mimeType="application/x-perfmon" />
-            <mimeMap fileExtension=".pmc" mimeType="application/x-perfmon" />
-            <mimeMap fileExtension=".pml" mimeType="application/x-perfmon" />
-            <mimeMap fileExtension=".pmr" mimeType="application/x-perfmon" />
-            <mimeMap fileExtension=".pmw" mimeType="application/x-perfmon" />
-            <mimeMap fileExtension=".png" mimeType="image/png" />
-            <mimeMap fileExtension=".pnm" mimeType="image/x-portable-anymap" />
-            <mimeMap fileExtension=".pnz" mimeType="image/png" />
-            <mimeMap fileExtension=".pot" mimeType="application/vnd.ms-powerpoint" />
-            <mimeMap fileExtension=".potm" mimeType="application/vnd.ms-powerpoint.template.macroEnabled.12" />
-            <mimeMap fileExtension=".potx" mimeType="application/vnd.openxmlformats-officedocument.presentationml.template" />
-            <mimeMap fileExtension=".ppam" mimeType="application/vnd.ms-powerpoint.addin.macroEnabled.12" />
-            <mimeMap fileExtension=".ppm" mimeType="image/x-portable-pixmap" />
-            <mimeMap fileExtension=".pps" mimeType="application/vnd.ms-powerpoint" />
-            <mimeMap fileExtension=".ppsm" mimeType="application/vnd.ms-powerpoint.slideshow.macroEnabled.12" />
-            <mimeMap fileExtension=".ppsx" mimeType="application/vnd.openxmlformats-officedocument.presentationml.slideshow" />
-            <mimeMap fileExtension=".ppt" mimeType="application/vnd.ms-powerpoint" />
-            <mimeMap fileExtension=".pptm" mimeType="application/vnd.ms-powerpoint.presentation.macroEnabled.12" />
-            <mimeMap fileExtension=".pptx" mimeType="application/vnd.openxmlformats-officedocument.presentationml.presentation" />
-            <mimeMap fileExtension=".prf" mimeType="application/pics-rules" />
-            <mimeMap fileExtension=".prm" mimeType="application/octet-stream" />
-            <mimeMap fileExtension=".prx" mimeType="application/octet-stream" />
-            <mimeMap fileExtension=".ps" mimeType="application/postscript" />
-            <mimeMap fileExtension=".psd" mimeType="application/octet-stream" />
-            <mimeMap fileExtension=".psm" mimeType="application/octet-stream" />
-            <mimeMap fileExtension=".psp" mimeType="application/octet-stream" />
-            <mimeMap fileExtension=".pub" mimeType="application/x-mspublisher" />
-            <mimeMap fileExtension=".qt" mimeType="video/quicktime" />
-            <mimeMap fileExtension=".qtl" mimeType="application/x-quicktimeplayer" />
-            <mimeMap fileExtension=".qxd" mimeType="application/octet-stream" />
-            <mimeMap fileExtension=".ra" mimeType="audio/x-pn-realaudio" />
-            <mimeMap fileExtension=".ram" mimeType="audio/x-pn-realaudio" />
-            <mimeMap fileExtension=".rar" mimeType="application/octet-stream" />
-            <mimeMap fileExtension=".ras" mimeType="image/x-cmu-raster" />
-            <mimeMap fileExtension=".rf" mimeType="image/vnd.rn-realflash" />
-            <mimeMap fileExtension=".rgb" mimeType="image/x-rgb" />
-            <mimeMap fileExtension=".rm" mimeType="application/vnd.rn-realmedia" />
-            <mimeMap fileExtension=".rmi" mimeType="audio/mid" />
-            <mimeMap fileExtension=".roff" mimeType="application/x-troff" />
-            <mimeMap fileExtension=".rpm" mimeType="audio/x-pn-realaudio-plugin" />
-            <mimeMap fileExtension=".rtf" mimeType="application/rtf" />
-            <mimeMap fileExtension=".rtx" mimeType="text/richtext" />
-            <mimeMap fileExtension=".scd" mimeType="application/x-msschedule" />
-            <mimeMap fileExtension=".sct" mimeType="text/scriptlet" />
-            <mimeMap fileExtension=".sea" mimeType="application/octet-stream" />
-            <mimeMap fileExtension=".setpay" mimeType="application/set-payment-initiation" />
-            <mimeMap fileExtension=".setreg" mimeType="application/set-registration-initiation" />
-            <mimeMap fileExtension=".sgml" mimeType="text/sgml" />
-            <mimeMap fileExtension=".sh" mimeType="application/x-sh" />
-            <mimeMap fileExtension=".shar" mimeType="application/x-shar" />
-            <mimeMap fileExtension=".sit" mimeType="application/x-stuffit" />
-            <mimeMap fileExtension=".sldm" mimeType="application/vnd.ms-powerpoint.slide.macroEnabled.12" />
-            <mimeMap fileExtension=".sldx" mimeType="application/vnd.openxmlformats-officedocument.presentationml.slide" />
-            <mimeMap fileExtension=".smd" mimeType="audio/x-smd" />
-            <mimeMap fileExtension=".smi" mimeType="application/octet-stream" />
-            <mimeMap fileExtension=".smx" mimeType="audio/x-smd" />
-            <mimeMap fileExtension=".smz" mimeType="audio/x-smd" />
-            <mimeMap fileExtension=".snd" mimeType="audio/basic" />
-            <mimeMap fileExtension=".snp" mimeType="application/octet-stream" />
-            <mimeMap fileExtension=".spc" mimeType="application/x-pkcs7-certificates" />
-            <mimeMap fileExtension=".spl" mimeType="application/futuresplash" />
-            <mimeMap fileExtension=".spx" mimeType="audio/ogg" />
-            <mimeMap fileExtension=".src" mimeType="application/x-wais-source" />
-            <mimeMap fileExtension=".ssm" mimeType="application/streamingmedia" />
-            <mimeMap fileExtension=".sst" mimeType="application/vnd.ms-pki.certstore" />
-            <mimeMap fileExtension=".stl" mimeType="application/vnd.ms-pki.stl" />
-            <mimeMap fileExtension=".sv4cpio" mimeType="application/x-sv4cpio" />
-            <mimeMap fileExtension=".sv4crc" mimeType="application/x-sv4crc" />
-            <mimeMap fileExtension=".svg" mimeType="image/svg+xml" />
-            <mimeMap fileExtension=".svgz" mimeType="image/svg+xml" />
-            <mimeMap fileExtension=".swf" mimeType="application/x-shockwave-flash" />
-            <mimeMap fileExtension=".t" mimeType="application/x-troff" />
-            <mimeMap fileExtension=".tar" mimeType="application/x-tar" />
-            <mimeMap fileExtension=".tcl" mimeType="application/x-tcl" />
-            <mimeMap fileExtension=".tex" mimeType="application/x-tex" />
-            <mimeMap fileExtension=".texi" mimeType="application/x-texinfo" />
-            <mimeMap fileExtension=".texinfo" mimeType="application/x-texinfo" />
-            <mimeMap fileExtension=".tgz" mimeType="application/x-compressed" />
-            <mimeMap fileExtension=".thmx" mimeType="application/vnd.ms-officetheme" />
-            <mimeMap fileExtension=".thn" mimeType="application/octet-stream" />
-            <mimeMap fileExtension=".tif" mimeType="image/tiff" />
-            <mimeMap fileExtension=".tiff" mimeType="image/tiff" />
-            <mimeMap fileExtension=".toc" mimeType="application/octet-stream" />
-            <mimeMap fileExtension=".tr" mimeType="application/x-troff" />
-            <mimeMap fileExtension=".trm" mimeType="application/x-msterminal" />
-            <mimeMap fileExtension=".ts" mimeType="video/vnd.dlna.mpeg-tts" />
-            <mimeMap fileExtension=".tsv" mimeType="text/tab-separated-values" />
-            <mimeMap fileExtension=".ttf" mimeType="application/octet-stream" />
-            <mimeMap fileExtension=".tts" mimeType="video/vnd.dlna.mpeg-tts" />
-            <mimeMap fileExtension=".txt" mimeType="text/plain" />
-            <mimeMap fileExtension=".u32" mimeType="application/octet-stream" />
-            <mimeMap fileExtension=".uls" mimeType="text/iuls" />
-            <mimeMap fileExtension=".ustar" mimeType="application/x-ustar" />
-            <mimeMap fileExtension=".vbs" mimeType="text/vbscript" />
-            <mimeMap fileExtension=".vcf" mimeType="text/x-vcard" />
-            <mimeMap fileExtension=".vcs" mimeType="text/plain" />
-            <mimeMap fileExtension=".vdx" mimeType="application/vnd.ms-visio.viewer" />
-            <mimeMap fileExtension=".vml" mimeType="text/xml" />
-            <mimeMap fileExtension=".vsd" mimeType="application/vnd.visio" />
-            <mimeMap fileExtension=".vss" mimeType="application/vnd.visio" />
-            <mimeMap fileExtension=".vst" mimeType="application/vnd.visio" />
-            <mimeMap fileExtension=".vsto" mimeType="application/x-ms-vsto" />
-            <mimeMap fileExtension=".vsw" mimeType="application/vnd.visio" />
-            <mimeMap fileExtension=".vsx" mimeType="application/vnd.visio" />
-            <mimeMap fileExtension=".vtx" mimeType="application/vnd.visio" />
-            <mimeMap fileExtension=".wasm" mimeType="application/wasm" />
-            <mimeMap fileExtension=".wav" mimeType="audio/wav" />
-            <mimeMap fileExtension=".wax" mimeType="audio/x-ms-wax" />
-            <mimeMap fileExtension=".wbmp" mimeType="image/vnd.wap.wbmp" />
-            <mimeMap fileExtension=".wcm" mimeType="application/vnd.ms-works" />
-            <mimeMap fileExtension=".wdb" mimeType="application/vnd.ms-works" />
-            <mimeMap fileExtension=".webm" mimeType="video/webm" />
-            <mimeMap fileExtension=".wks" mimeType="application/vnd.ms-works" />
-            <mimeMap fileExtension=".wm" mimeType="video/x-ms-wm" />
-            <mimeMap fileExtension=".wma" mimeType="audio/x-ms-wma" />
-            <mimeMap fileExtension=".wmd" mimeType="application/x-ms-wmd" />
-            <mimeMap fileExtension=".wmf" mimeType="application/x-msmetafile" />
-            <mimeMap fileExtension=".wml" mimeType="text/vnd.wap.wml" />
-            <mimeMap fileExtension=".wmlc" mimeType="application/vnd.wap.wmlc" />
-            <mimeMap fileExtension=".wmls" mimeType="text/vnd.wap.wmlscript" />
-            <mimeMap fileExtension=".wmlsc" mimeType="application/vnd.wap.wmlscriptc" />
-            <mimeMap fileExtension=".wmp" mimeType="video/x-ms-wmp" />
-            <mimeMap fileExtension=".wmv" mimeType="video/x-ms-wmv" />
-            <mimeMap fileExtension=".wmx" mimeType="video/x-ms-wmx" />
-            <mimeMap fileExtension=".wmz" mimeType="application/x-ms-wmz" />
-            <mimeMap fileExtension=".woff" mimeType="font/x-woff" />
-            <mimeMap fileExtension=".woff2" mimeType="application/font-woff2" />
-            <mimeMap fileExtension=".wps" mimeType="application/vnd.ms-works" />
-            <mimeMap fileExtension=".wri" mimeType="application/x-mswrite" />
-            <mimeMap fileExtension=".wrl" mimeType="x-world/x-vrml" />
-            <mimeMap fileExtension=".wrz" mimeType="x-world/x-vrml" />
-            <mimeMap fileExtension=".wsdl" mimeType="text/xml" />
-            <mimeMap fileExtension=".wtv" mimeType="video/x-ms-wtv" />
-            <mimeMap fileExtension=".wvx" mimeType="video/x-ms-wvx" />
-            <mimeMap fileExtension=".x" mimeType="application/directx" />
-            <mimeMap fileExtension=".xaf" mimeType="x-world/x-vrml" />
-            <mimeMap fileExtension=".xaml" mimeType="application/xaml+xml" />
-            <mimeMap fileExtension=".xap" mimeType="application/x-silverlight-app" />
-            <mimeMap fileExtension=".xbap" mimeType="application/x-ms-xbap" />
-            <mimeMap fileExtension=".xbm" mimeType="image/x-xbitmap" />
-            <mimeMap fileExtension=".xdr" mimeType="text/plain" />
-            <mimeMap fileExtension=".xht" mimeType="application/xhtml+xml" />
-            <mimeMap fileExtension=".xhtml" mimeType="application/xhtml+xml" />
-            <mimeMap fileExtension=".xla" mimeType="application/vnd.ms-excel" />
-            <mimeMap fileExtension=".xlam" mimeType="application/vnd.ms-excel.addin.macroEnabled.12" />
-            <mimeMap fileExtension=".xlc" mimeType="application/vnd.ms-excel" />
-            <mimeMap fileExtension=".xlm" mimeType="application/vnd.ms-excel" />
-            <mimeMap fileExtension=".xls" mimeType="application/vnd.ms-excel" />
-            <mimeMap fileExtension=".xlsb" mimeType="application/vnd.ms-excel.sheet.binary.macroEnabled.12" />
-            <mimeMap fileExtension=".xlsm" mimeType="application/vnd.ms-excel.sheet.macroEnabled.12" />
-            <mimeMap fileExtension=".xlsx" mimeType="application/vnd.openxmlformats-officedocument.spreadsheetml.sheet" />
-            <mimeMap fileExtension=".xlt" mimeType="application/vnd.ms-excel" />
-            <mimeMap fileExtension=".xltm" mimeType="application/vnd.ms-excel.template.macroEnabled.12" />
-            <mimeMap fileExtension=".xltx" mimeType="application/vnd.openxmlformats-officedocument.spreadsheetml.template" />
-            <mimeMap fileExtension=".xlw" mimeType="application/vnd.ms-excel" />
-            <mimeMap fileExtension=".xml" mimeType="text/xml" />
-            <mimeMap fileExtension=".xof" mimeType="x-world/x-vrml" />
-            <mimeMap fileExtension=".xpm" mimeType="image/x-xpixmap" />
-            <mimeMap fileExtension=".xps" mimeType="application/vnd.ms-xpsdocument" />
-            <mimeMap fileExtension=".xsd" mimeType="text/xml" />
-            <mimeMap fileExtension=".xsf" mimeType="text/xml" />
-            <mimeMap fileExtension=".xsl" mimeType="text/xml" />
-            <mimeMap fileExtension=".xslt" mimeType="text/xml" />
-            <mimeMap fileExtension=".xsn" mimeType="application/octet-stream" />
-            <mimeMap fileExtension=".xtp" mimeType="application/octet-stream" />
-            <mimeMap fileExtension=".xwd" mimeType="image/x-xwindowdump" />
-            <mimeMap fileExtension=".z" mimeType="application/x-compress" />
-            <mimeMap fileExtension=".zip" mimeType="application/x-zip-compressed" />
-        </staticContent>
-
-        <tracing>
-
-            <traceFailedRequests>
-                <add path="*">
-                    <traceAreas>
-                        <add provider="ASP" verbosity="Verbose" />
-                        <add provider="ASPNET" areas="Infrastructure,Module,Page,AppServices" verbosity="Verbose" />
-                        <add provider="ISAPI Extension" verbosity="Verbose" />
-                        <add provider="WWW Server" areas="Authentication,Security,Filter,StaticFile,CGI,Compression,Cache,RequestNotifications,Module,Rewrite,WebSocket" verbosity="Verbose" />
-                    </traceAreas>
-                    <failureDefinitions statusCodes="200-999" />
-                </add>
-            </traceFailedRequests>
-
-            <traceProviderDefinitions>
-                <add name="WWW Server" guid="{3a2a4e84-4c21-4981-ae10-3fda0d9b0f83}">
-                    <areas>
-                        <clear />
-                        <add name="Authentication" value="2" />
-                        <add name="Security" value="4" />
-                        <add name="Filter" value="8" />
-                        <add name="StaticFile" value="16" />
-                        <add name="CGI" value="32" />
-                        <add name="Compression" value="64" />
-                        <add name="Cache" value="128" />
-                        <add name="RequestNotifications" value="256" />
-                        <add name="Module" value="512" />
-                        <add name="Rewrite" value="1024" />
-                        <add name="FastCGI" value="4096" />
-                        <add name="WebSocket" value="16384" />
-                        <add name="ANCM" value="65536" />
-                    </areas>
-                </add>
-                <add name="ASP" guid="{06b94d9a-b15e-456e-a4ef-37c984a2cb4b}">
-                    <areas>
-                        <clear />
-                    </areas>
-                </add>
-                <add name="ISAPI Extension" guid="{a1c2040e-8840-4c31-ba11-9871031a19ea}">
-                    <areas>
-                        <clear />
-                    </areas>
-                </add>
-                <add name="ASPNET" guid="{AFF081FE-0247-4275-9C4E-021F3DC1DA35}">
-                    <areas>
-                        <add name="Infrastructure" value="1" />
-                        <add name="Module" value="2" />
-                        <add name="Page" value="4" />
-                        <add name="AppServices" value="8" />
-                    </areas>
-                </add>
-            </traceProviderDefinitions>
-
-        </tracing>
-
-        <urlCompression />
-
-        <validation />
-        <webdav>
-            <globalSettings>
-                <propertyStores>
-                    <add name="webdav_simple_prop" image="%IIS_BIN%\webdav_simple_prop.dll" image32="%IIS_BIN%\webdav_simple_prop.dll" />
-                </propertyStores>
-                <lockStores>
-                    <add name="webdav_simple_lock" image="%IIS_BIN%\webdav_simple_lock.dll" image32="%IIS_BIN%\webdav_simple_lock.dll" />
-                </lockStores>
-
-            </globalSettings>
-            <authoring>
-                <locks enabled="true" lockStore="webdav_simple_lock" />
-            </authoring>
-            <authoringRules />
-        </webdav>
-        <webSocket />
-        <applicationInitialization />
-
+    <globalModules>
+      <add name="HttpLoggingModule" image="%IIS_BIN%\loghttp.dll" />
+      <add name="UriCacheModule" image="%IIS_BIN%\cachuri.dll" />
+      <add name="TokenCacheModule" image="%IIS_BIN%\cachtokn.dll" />
+      <add name="DynamicCompressionModule" image="%IIS_BIN%\compdyn.dll" />
+      <add name="StaticCompressionModule" image="%IIS_BIN%\compstat.dll" />
+      <add name="DefaultDocumentModule" image="%IIS_BIN%\defdoc.dll" />
+      <add name="DirectoryListingModule" image="%IIS_BIN%\dirlist.dll" />
+      <add name="ProtocolSupportModule" image="%IIS_BIN%\protsup.dll" />
+      <add name="HttpRedirectionModule" image="%IIS_BIN%\redirect.dll" />
+      <add name="ServerSideIncludeModule" image="%IIS_BIN%\iis_ssi.dll" />
+      <add name="StaticFileModule" image="%IIS_BIN%\static.dll" />
+      <add name="AnonymousAuthenticationModule" image="%IIS_BIN%\authanon.dll" />
+      <add name="CertificateMappingAuthenticationModule" image="%IIS_BIN%\authcert.dll" />
+      <add name="UrlAuthorizationModule" image="%IIS_BIN%\urlauthz.dll" />
+      <add name="BasicAuthenticationModule" image="%IIS_BIN%\authbas.dll" />
+      <add name="WindowsAuthenticationModule" image="%IIS_BIN%\authsspi.dll" />
+      <add name="IISCertificateMappingAuthenticationModule" image="%IIS_BIN%\authmap.dll" />
+      <add name="IpRestrictionModule" image="%IIS_BIN%\iprestr.dll" />
+      <add name="DynamicIpRestrictionModule" image="%IIS_BIN%\diprestr.dll" />
+      <add name="RequestFilteringModule" image="%IIS_BIN%\modrqflt.dll" />
+      <add name="CustomLoggingModule" image="%IIS_BIN%\logcust.dll" />
+      <add name="CustomErrorModule" image="%IIS_BIN%\custerr.dll" />
+      <add name="FailedRequestsTracingModule" image="%IIS_BIN%\iisfreb.dll" />
+      <add name="RequestMonitorModule" image="%IIS_BIN%\iisreqs.dll" />
+      <add name="IsapiModule" image="%IIS_BIN%\isapi.dll" />
+      <add name="IsapiFilterModule" image="%IIS_BIN%\filter.dll" />
+      <add name="CgiModule" image="%IIS_BIN%\cgi.dll" />
+      <add name="FastCgiModule" image="%IIS_BIN%\iisfcgi.dll" />
+      <!--            <add name="WebDAVModule" image="%IIS_BIN%\webdav.dll" /> -->
+      <add name="RewriteModule" image="%IIS_BIN%\rewrite.dll" />
+      <add name="ConfigurationValidationModule" image="%IIS_BIN%\validcfg.dll" />
+      <add name="WebSocketModule" image="%IIS_BIN%\iiswsock.dll" />
+      <add name="WebMatrixSupportModule" image="%IIS_BIN%\webmatrixsup.dll" />
+      <add name="ManagedEngine" image="%windir%\Microsoft.NET\Framework\v2.0.50727\webengine.dll" preCondition="integratedMode,runtimeVersionv2.0,bitness32" />
+      <add name="ManagedEngine64" image="%windir%\Microsoft.NET\Framework64\v2.0.50727\webengine.dll" preCondition="integratedMode,runtimeVersionv2.0,bitness64" />
+      <add name="ManagedEngineV4.0_32bit" image="%windir%\Microsoft.NET\Framework\v4.0.30319\webengine4.dll" preCondition="integratedMode,runtimeVersionv4.0,bitness32" />
+      <add name="ManagedEngineV4.0_64bit" image="%windir%\Microsoft.NET\Framework64\v4.0.30319\webengine4.dll" preCondition="integratedMode,runtimeVersionv4.0,bitness64" />
+      <add name="ApplicationInitializationModule" image="%IIS_BIN%\warmup.dll" />
+      <add name="AspNetCoreModule" image="%IIS_BIN%\aspnetcore.dll" />
+      <add name="AspNetCoreModuleV2" image="%IIS_BIN%\Asp.Net Core Module\V2\aspnetcorev2.dll" />
+    </globalModules>
+    <httpCompression directory="%TEMP%">
+      <scheme name="gzip" dll="%IIS_BIN%\gzip.dll" />
+      <dynamicTypes>
+        <add mimeType="text/*" enabled="true" />
+        <add mimeType="message/*" enabled="true" />
+        <add mimeType="application/x-javascript" enabled="true" />
+        <add mimeType="application/javascript" enabled="true" />
+        <add mimeType="*/*" enabled="false" />
+        <add mimeType="text/event-stream" enabled="false" />
+      </dynamicTypes>
+      <staticTypes>
+        <add mimeType="text/*" enabled="true" />
+        <add mimeType="message/*" enabled="true" />
+        <add mimeType="application/javascript" enabled="true" />
+        <add mimeType="application/atom+xml" enabled="true" />
+        <add mimeType="application/xaml+xml" enabled="true" />
+        <add mimeType="image/svg+xml" enabled="true" />
+        <add mimeType="*/*" enabled="false" />
+      </staticTypes>
+    </httpCompression>
+    <httpErrors lockAttributes="allowAbsolutePathsWhenDelegated,defaultPath">
+      <error statusCode="401" prefixLanguageFilePath="%IIS_BIN%\custerr" path="401.htm" />
+      <error statusCode="403" prefixLanguageFilePath="%IIS_BIN%\custerr" path="403.htm" />
+      <error statusCode="404" prefixLanguageFilePath="%IIS_BIN%\custerr" path="404.htm" />
+      <error statusCode="405" prefixLanguageFilePath="%IIS_BIN%\custerr" path="405.htm" />
+      <error statusCode="406" prefixLanguageFilePath="%IIS_BIN%\custerr" path="406.htm" />
+      <error statusCode="412" prefixLanguageFilePath="%IIS_BIN%\custerr" path="412.htm" />
+      <error statusCode="500" prefixLanguageFilePath="%IIS_BIN%\custerr" path="500.htm" />
+      <error statusCode="501" prefixLanguageFilePath="%IIS_BIN%\custerr" path="501.htm" />
+      <error statusCode="502" prefixLanguageFilePath="%IIS_BIN%\custerr" path="502.htm" />
+    </httpErrors>
+    <httpLogging dontLog="false" />
+    <httpProtocol>
+      <customHeaders>
+        <clear />
+        <add name="X-Powered-By" value="ASP.NET" />
+      </customHeaders>
+      <redirectHeaders>
+        <clear />
+      </redirectHeaders>
+    </httpProtocol>
+    <httpRedirect enabled="false" />
+    <httpTracing />
+    <isapiFilters>
+      <filter name="ASP.Net_2.0.50727-64" path="%windir%\Microsoft.NET\Framework64\v2.0.50727\aspnet_filter.dll" enableCache="true" preCondition="bitness64,runtimeVersionv2.0" />
+      <filter name="ASP.Net_2.0.50727.0" path="%windir%\Microsoft.NET\Framework\v2.0.50727\aspnet_filter.dll" enableCache="true" preCondition="bitness32,runtimeVersionv2.0" />
+      <filter name="ASP.Net_2.0_for_v1.1" path="%windir%\Microsoft.NET\Framework\v2.0.50727\aspnet_filter.dll" enableCache="true" preCondition="runtimeVersionv1.1" />
+      <filter name="ASP.Net_4.0_32bit" path="%windir%\Microsoft.NET\Framework\v4.0.30319\aspnet_filter.dll" enableCache="true" preCondition="bitness32,runtimeVersionv4.0" />
+      <filter name="ASP.Net_4.0_64bit" path="%windir%\Microsoft.NET\Framework64\v4.0.30319\aspnet_filter.dll" enableCache="true" preCondition="bitness64,runtimeVersionv4.0" />
+    </isapiFilters>
+    <odbcLogging />
+    <security>
+      <access sslFlags="None" />
+      <applicationDependencies>
+        <application name="Active Server Pages" groupId="ASP" />
+      </applicationDependencies>
+      <authentication>
+        <anonymousAuthentication enabled="true" userName="" />
+        <basicAuthentication enabled="false" />
+        <clientCertificateMappingAuthentication enabled="false" />
+        <digestAuthentication enabled="false" />
+        <iisClientCertificateMappingAuthentication enabled="false"></iisClientCertificateMappingAuthentication>
+        <windowsAuthentication enabled="false">
+          <providers>
+            <add value="Negotiate" />
+            <add value="NTLM" />
+          </providers>
+        </windowsAuthentication>
+      </authentication>
+      <authorization>
+        <add accessType="Allow" users="*" />
+      </authorization>
+      <ipSecurity allowUnlisted="true" />
+      <isapiCgiRestriction notListedIsapisAllowed="true" notListedCgisAllowed="true">
+        <add path="%windir%\Microsoft.NET\Framework64\v4.0.30319\webengine4.dll" allowed="true" groupId="ASP.NET_v4.0" description="ASP.NET_v4.0" />
+        <add path="%windir%\Microsoft.NET\Framework\v4.0.30319\webengine4.dll" allowed="true" groupId="ASP.NET_v4.0" description="ASP.NET_v4.0" />
+        <add path="%windir%\Microsoft.NET\Framework64\v2.0.50727\aspnet_isapi.dll" allowed="true" groupId="ASP.NET v2.0.50727" description="ASP.NET v2.0.50727" />
+        <add path="%windir%\Microsoft.NET\Framework\v2.0.50727\aspnet_isapi.dll" allowed="true" groupId="ASP.NET v2.0.50727" description="ASP.NET v2.0.50727" />
+      </isapiCgiRestriction>
+      <requestFiltering>
+        <fileExtensions allowUnlisted="true" applyToWebDAV="true">
+          <add fileExtension=".asa" allowed="false" />
+          <add fileExtension=".asax" allowed="false" />
+          <add fileExtension=".ascx" allowed="false" />
+          <add fileExtension=".master" allowed="false" />
+          <add fileExtension=".skin" allowed="false" />
+          <add fileExtension=".browser" allowed="false" />
+          <add fileExtension=".sitemap" allowed="false" />
+          <add fileExtension=".config" allowed="false" />
+          <add fileExtension=".cs" allowed="false" />
+          <add fileExtension=".csproj" allowed="false" />
+          <add fileExtension=".vb" allowed="false" />
+          <add fileExtension=".vbproj" allowed="false" />
+          <add fileExtension=".webinfo" allowed="false" />
+          <add fileExtension=".licx" allowed="false" />
+          <add fileExtension=".resx" allowed="false" />
+          <add fileExtension=".resources" allowed="false" />
+          <add fileExtension=".mdb" allowed="false" />
+          <add fileExtension=".vjsproj" allowed="false" />
+          <add fileExtension=".java" allowed="false" />
+          <add fileExtension=".jsl" allowed="false" />
+          <add fileExtension=".ldb" allowed="false" />
+          <add fileExtension=".dsdgm" allowed="false" />
+          <add fileExtension=".ssdgm" allowed="false" />
+          <add fileExtension=".lsad" allowed="false" />
+          <add fileExtension=".ssmap" allowed="false" />
+          <add fileExtension=".cd" allowed="false" />
+          <add fileExtension=".dsprototype" allowed="false" />
+          <add fileExtension=".lsaprototype" allowed="false" />
+          <add fileExtension=".sdm" allowed="false" />
+          <add fileExtension=".sdmDocument" allowed="false" />
+          <add fileExtension=".mdf" allowed="false" />
+          <add fileExtension=".ldf" allowed="false" />
+          <add fileExtension=".ad" allowed="false" />
+          <add fileExtension=".dd" allowed="false" />
+          <add fileExtension=".ldd" allowed="false" />
+          <add fileExtension=".sd" allowed="false" />
+          <add fileExtension=".adprototype" allowed="false" />
+          <add fileExtension=".lddprototype" allowed="false" />
+          <add fileExtension=".exclude" allowed="false" />
+          <add fileExtension=".refresh" allowed="false" />
+          <add fileExtension=".compiled" allowed="false" />
+          <add fileExtension=".msgx" allowed="false" />
+          <add fileExtension=".vsdisco" allowed="false" />
+          <add fileExtension=".rules" allowed="false" />
+        </fileExtensions>
+        <verbs allowUnlisted="true" applyToWebDAV="true" />
+        <hiddenSegments applyToWebDAV="true">
+          <add segment="web.config" />
+          <add segment="bin" />
+          <add segment="App_code" />
+          <add segment="App_GlobalResources" />
+          <add segment="App_LocalResources" />
+          <add segment="App_WebReferences" />
+          <add segment="App_Data" />
+          <add segment="App_Browsers" />
+        </hiddenSegments>
+      </requestFiltering>
+    </security>
+    <serverSideInclude ssiExecDisable="false" />
+    <staticContent lockAttributes="isDocFooterFileName">
+      <mimeMap fileExtension=".323" mimeType="text/h323" />
+      <mimeMap fileExtension=".3g2" mimeType="video/3gpp2" />
+      <mimeMap fileExtension=".3gp2" mimeType="video/3gpp2" />
+      <mimeMap fileExtension=".3gp" mimeType="video/3gpp" />
+      <mimeMap fileExtension=".3gpp" mimeType="video/3gpp" />
+      <mimeMap fileExtension=".aac" mimeType="audio/aac" />
+      <mimeMap fileExtension=".aaf" mimeType="application/octet-stream" />
+      <mimeMap fileExtension=".aca" mimeType="application/octet-stream" />
+      <mimeMap fileExtension=".accdb" mimeType="application/msaccess" />
+      <mimeMap fileExtension=".accde" mimeType="application/msaccess" />
+      <mimeMap fileExtension=".accdt" mimeType="application/msaccess" />
+      <mimeMap fileExtension=".acx" mimeType="application/internet-property-stream" />
+      <mimeMap fileExtension=".adt" mimeType="audio/vnd.dlna.adts" />
+      <mimeMap fileExtension=".adts" mimeType="audio/vnd.dlna.adts" />
+      <mimeMap fileExtension=".afm" mimeType="application/octet-stream" />
+      <mimeMap fileExtension=".ai" mimeType="application/postscript" />
+      <mimeMap fileExtension=".aif" mimeType="audio/x-aiff" />
+      <mimeMap fileExtension=".aifc" mimeType="audio/aiff" />
+      <mimeMap fileExtension=".aiff" mimeType="audio/aiff" />
+      <mimeMap fileExtension=".appcache" mimeType="text/cache-manifest" />
+      <mimeMap fileExtension=".application" mimeType="application/x-ms-application" />
+      <mimeMap fileExtension=".art" mimeType="image/x-jg" />
+      <mimeMap fileExtension=".asd" mimeType="application/octet-stream" />
+      <mimeMap fileExtension=".asf" mimeType="video/x-ms-asf" />
+      <mimeMap fileExtension=".asi" mimeType="application/octet-stream" />
+      <mimeMap fileExtension=".asm" mimeType="text/plain" />
+      <mimeMap fileExtension=".asr" mimeType="video/x-ms-asf" />
+      <mimeMap fileExtension=".asx" mimeType="video/x-ms-asf" />
+      <mimeMap fileExtension=".atom" mimeType="application/atom+xml" />
+      <mimeMap fileExtension=".au" mimeType="audio/basic" />
+      <mimeMap fileExtension=".avi" mimeType="video/avi" />
+      <mimeMap fileExtension=".axs" mimeType="application/olescript" />
+      <mimeMap fileExtension=".bas" mimeType="text/plain" />
+      <mimeMap fileExtension=".bcpio" mimeType="application/x-bcpio" />
+      <mimeMap fileExtension=".bin" mimeType="application/octet-stream" />
+      <mimeMap fileExtension=".bmp" mimeType="image/bmp" />
+      <mimeMap fileExtension=".c" mimeType="text/plain" />
+      <mimeMap fileExtension=".cab" mimeType="application/vnd.ms-cab-compressed" />
+      <mimeMap fileExtension=".calx" mimeType="application/vnd.ms-office.calx" />
+      <mimeMap fileExtension=".cat" mimeType="application/vnd.ms-pki.seccat" />
+      <mimeMap fileExtension=".cdf" mimeType="application/x-cdf" />
+      <mimeMap fileExtension=".chm" mimeType="application/octet-stream" />
+      <mimeMap fileExtension=".class" mimeType="application/x-java-applet" />
+      <mimeMap fileExtension=".clp" mimeType="application/x-msclip" />
+      <mimeMap fileExtension=".cmx" mimeType="image/x-cmx" />
+      <mimeMap fileExtension=".cnf" mimeType="text/plain" />
+      <mimeMap fileExtension=".cod" mimeType="image/cis-cod" />
+      <mimeMap fileExtension=".cpio" mimeType="application/x-cpio" />
+      <mimeMap fileExtension=".cpp" mimeType="text/plain" />
+      <mimeMap fileExtension=".crd" mimeType="application/x-mscardfile" />
+      <mimeMap fileExtension=".crl" mimeType="application/pkix-crl" />
+      <mimeMap fileExtension=".crt" mimeType="application/x-x509-ca-cert" />
+      <mimeMap fileExtension=".csh" mimeType="application/x-csh" />
+      <mimeMap fileExtension=".css" mimeType="text/css" />
+      <mimeMap fileExtension=".csv" mimeType="application/octet-stream" />
+      <mimeMap fileExtension=".cur" mimeType="application/octet-stream" />
+      <mimeMap fileExtension=".dcr" mimeType="application/x-director" />
+      <mimeMap fileExtension=".deploy" mimeType="application/octet-stream" />
+      <mimeMap fileExtension=".der" mimeType="application/x-x509-ca-cert" />
+      <mimeMap fileExtension=".dib" mimeType="image/bmp" />
+      <mimeMap fileExtension=".dir" mimeType="application/x-director" />
+      <mimeMap fileExtension=".disco" mimeType="text/xml" />
+      <mimeMap fileExtension=".dll" mimeType="application/x-msdownload" />
+      <mimeMap fileExtension=".dll.config" mimeType="text/xml" />
+      <mimeMap fileExtension=".dlm" mimeType="text/dlm" />
+      <mimeMap fileExtension=".doc" mimeType="application/msword" />
+      <mimeMap fileExtension=".docm" mimeType="application/vnd.ms-word.document.macroEnabled.12" />
+      <mimeMap fileExtension=".docx" mimeType="application/vnd.openxmlformats-officedocument.wordprocessingml.document" />
+      <mimeMap fileExtension=".dot" mimeType="application/msword" />
+      <mimeMap fileExtension=".dotm" mimeType="application/vnd.ms-word.template.macroEnabled.12" />
+      <mimeMap fileExtension=".dotx" mimeType="application/vnd.openxmlformats-officedocument.wordprocessingml.template" />
+      <mimeMap fileExtension=".dsp" mimeType="application/octet-stream" />
+      <mimeMap fileExtension=".dtd" mimeType="text/xml" />
+      <mimeMap fileExtension=".dvi" mimeType="application/x-dvi" />
+      <mimeMap fileExtension=".dvr-ms" mimeType="video/x-ms-dvr" />
+      <mimeMap fileExtension=".dwf" mimeType="drawing/x-dwf" />
+      <mimeMap fileExtension=".dwp" mimeType="application/octet-stream" />
+      <mimeMap fileExtension=".dxr" mimeType="application/x-director" />
+      <mimeMap fileExtension=".eml" mimeType="message/rfc822" />
+      <mimeMap fileExtension=".emz" mimeType="application/octet-stream" />
+      <mimeMap fileExtension=".eot" mimeType="application/vnd.ms-fontobject" />
+      <mimeMap fileExtension=".eps" mimeType="application/postscript" />
+      <mimeMap fileExtension=".esd" mimeType="application/vnd.ms-cab-compressed" />
+      <mimeMap fileExtension=".etx" mimeType="text/x-setext" />
+      <mimeMap fileExtension=".evy" mimeType="application/envoy" />
+      <mimeMap fileExtension=".exe" mimeType="application/octet-stream" />
+      <mimeMap fileExtension=".exe.config" mimeType="text/xml" />
+      <mimeMap fileExtension=".fdf" mimeType="application/vnd.fdf" />
+      <mimeMap fileExtension=".fif" mimeType="application/fractals" />
+      <mimeMap fileExtension=".fla" mimeType="application/octet-stream" />
+      <mimeMap fileExtension=".flr" mimeType="x-world/x-vrml" />
+      <mimeMap fileExtension=".flv" mimeType="video/x-flv" />
+      <mimeMap fileExtension=".gif" mimeType="image/gif" />
+      <mimeMap fileExtension=".glb" mimeType="model/gltf-binary" />
+      <mimeMap fileExtension=".gtar" mimeType="application/x-gtar" />
+      <mimeMap fileExtension=".gz" mimeType="application/x-gzip" />
+      <mimeMap fileExtension=".h" mimeType="text/plain" />
+      <mimeMap fileExtension=".hdf" mimeType="application/x-hdf" />
+      <mimeMap fileExtension=".hdml" mimeType="text/x-hdml" />
+      <mimeMap fileExtension=".hhc" mimeType="application/x-oleobject" />
+      <mimeMap fileExtension=".hhk" mimeType="application/octet-stream" />
+      <mimeMap fileExtension=".hhp" mimeType="application/octet-stream" />
+      <mimeMap fileExtension=".hlp" mimeType="application/winhlp" />
+      <mimeMap fileExtension=".hqx" mimeType="application/mac-binhex40" />
+      <mimeMap fileExtension=".hta" mimeType="application/hta" />
+      <mimeMap fileExtension=".htc" mimeType="text/x-component" />
+      <mimeMap fileExtension=".htm" mimeType="text/html" />
+      <mimeMap fileExtension=".html" mimeType="text/html" />
+      <mimeMap fileExtension=".htt" mimeType="text/webviewhtml" />
+      <mimeMap fileExtension=".hxt" mimeType="text/html" />
+      <mimeMap fileExtension=".ico" mimeType="image/x-icon" />
+      <mimeMap fileExtension=".ics" mimeType="text/calendar" />
+      <mimeMap fileExtension=".ief" mimeType="image/ief" />
+      <mimeMap fileExtension=".iii" mimeType="application/x-iphone" />
+      <mimeMap fileExtension=".inf" mimeType="application/octet-stream" />
+      <mimeMap fileExtension=".ins" mimeType="application/x-internet-signup" />
+      <mimeMap fileExtension=".isp" mimeType="application/x-internet-signup" />
+      <mimeMap fileExtension=".IVF" mimeType="video/x-ivf" />
+      <mimeMap fileExtension=".jar" mimeType="application/java-archive" />
+      <mimeMap fileExtension=".java" mimeType="application/octet-stream" />
+      <mimeMap fileExtension=".jck" mimeType="application/liquidmotion" />
+      <mimeMap fileExtension=".jcz" mimeType="application/liquidmotion" />
+      <mimeMap fileExtension=".jfif" mimeType="image/pjpeg" />
+      <mimeMap fileExtension=".jpb" mimeType="application/octet-stream" />
+      <mimeMap fileExtension=".jpe" mimeType="image/jpeg" />
+      <mimeMap fileExtension=".jpeg" mimeType="image/jpeg" />
+      <mimeMap fileExtension=".jpg" mimeType="image/jpeg" />
+      <mimeMap fileExtension=".js" mimeType="application/javascript" />
+      <mimeMap fileExtension=".json" mimeType="application/json" />
+      <mimeMap fileExtension=".jsonld" mimeType="application/ld+json" />
+      <mimeMap fileExtension=".jsx" mimeType="text/jscript" />
+      <mimeMap fileExtension=".latex" mimeType="application/x-latex" />
+      <mimeMap fileExtension=".less" mimeType="text/css" />
+      <mimeMap fileExtension=".lit" mimeType="application/x-ms-reader" />
+      <mimeMap fileExtension=".lpk" mimeType="application/octet-stream" />
+      <mimeMap fileExtension=".lsf" mimeType="video/x-la-asf" />
+      <mimeMap fileExtension=".lsx" mimeType="video/x-la-asf" />
+      <mimeMap fileExtension=".lzh" mimeType="application/octet-stream" />
+      <mimeMap fileExtension=".m13" mimeType="application/x-msmediaview" />
+      <mimeMap fileExtension=".m14" mimeType="application/x-msmediaview" />
+      <mimeMap fileExtension=".m1v" mimeType="video/mpeg" />
+      <mimeMap fileExtension=".m2ts" mimeType="video/vnd.dlna.mpeg-tts" />
+      <mimeMap fileExtension=".m3u" mimeType="audio/x-mpegurl" />
+      <mimeMap fileExtension=".m4a" mimeType="audio/mp4" />
+      <mimeMap fileExtension=".m4v" mimeType="video/mp4" />
+      <mimeMap fileExtension=".man" mimeType="application/x-troff-man" />
+      <mimeMap fileExtension=".manifest" mimeType="application/x-ms-manifest" />
+      <mimeMap fileExtension=".map" mimeType="text/plain" />
+      <mimeMap fileExtension=".mdb" mimeType="application/x-msaccess" />
+      <mimeMap fileExtension=".mdp" mimeType="application/octet-stream" />
+      <mimeMap fileExtension=".me" mimeType="application/x-troff-me" />
+      <mimeMap fileExtension=".mht" mimeType="message/rfc822" />
+      <mimeMap fileExtension=".mhtml" mimeType="message/rfc822" />
+      <mimeMap fileExtension=".mid" mimeType="audio/mid" />
+      <mimeMap fileExtension=".midi" mimeType="audio/mid" />
+      <mimeMap fileExtension=".mix" mimeType="application/octet-stream" />
+      <mimeMap fileExtension=".mmf" mimeType="application/x-smaf" />
+      <mimeMap fileExtension=".mno" mimeType="text/xml" />
+      <mimeMap fileExtension=".mny" mimeType="application/x-msmoney" />
+      <mimeMap fileExtension=".mov" mimeType="video/quicktime" />
+      <mimeMap fileExtension=".movie" mimeType="video/x-sgi-movie" />
+      <mimeMap fileExtension=".mp2" mimeType="video/mpeg" />
+      <mimeMap fileExtension=".mp3" mimeType="audio/mpeg" />
+      <mimeMap fileExtension=".mp4" mimeType="video/mp4" />
+      <mimeMap fileExtension=".mp4v" mimeType="video/mp4" />
+      <mimeMap fileExtension=".mpa" mimeType="video/mpeg" />
+      <mimeMap fileExtension=".mpe" mimeType="video/mpeg" />
+      <mimeMap fileExtension=".mpeg" mimeType="video/mpeg" />
+      <mimeMap fileExtension=".mpg" mimeType="video/mpeg" />
+      <mimeMap fileExtension=".mpp" mimeType="application/vnd.ms-project" />
+      <mimeMap fileExtension=".mpv2" mimeType="video/mpeg" />
+      <mimeMap fileExtension=".ms" mimeType="application/x-troff-ms" />
+      <mimeMap fileExtension=".msi" mimeType="application/octet-stream" />
+      <mimeMap fileExtension=".mso" mimeType="application/octet-stream" />
+      <mimeMap fileExtension=".mvb" mimeType="application/x-msmediaview" />
+      <mimeMap fileExtension=".mvc" mimeType="application/x-miva-compiled" />
+      <mimeMap fileExtension=".nc" mimeType="application/x-netcdf" />
+      <mimeMap fileExtension=".nsc" mimeType="video/x-ms-asf" />
+      <mimeMap fileExtension=".nws" mimeType="message/rfc822" />
+      <mimeMap fileExtension=".ocx" mimeType="application/octet-stream" />
+      <mimeMap fileExtension=".oda" mimeType="application/oda" />
+      <mimeMap fileExtension=".odc" mimeType="text/x-ms-odc" />
+      <mimeMap fileExtension=".ods" mimeType="application/oleobject" />
+      <mimeMap fileExtension=".oga" mimeType="audio/ogg" />
+      <mimeMap fileExtension=".ogg" mimeType="video/ogg" />
+      <mimeMap fileExtension=".ogv" mimeType="video/ogg" />
+      <mimeMap fileExtension=".one" mimeType="application/onenote" />
+      <mimeMap fileExtension=".onea" mimeType="application/onenote" />
+      <mimeMap fileExtension=".onetoc" mimeType="application/onenote" />
+      <mimeMap fileExtension=".onetoc2" mimeType="application/onenote" />
+      <mimeMap fileExtension=".onetmp" mimeType="application/onenote" />
+      <mimeMap fileExtension=".onepkg" mimeType="application/onenote" />
+      <mimeMap fileExtension=".osdx" mimeType="application/opensearchdescription+xml" />
+      <mimeMap fileExtension=".otf" mimeType="font/otf" />
+      <mimeMap fileExtension=".p10" mimeType="application/pkcs10" />
+      <mimeMap fileExtension=".p12" mimeType="application/x-pkcs12" />
+      <mimeMap fileExtension=".p7b" mimeType="application/x-pkcs7-certificates" />
+      <mimeMap fileExtension=".p7c" mimeType="application/pkcs7-mime" />
+      <mimeMap fileExtension=".p7m" mimeType="application/pkcs7-mime" />
+      <mimeMap fileExtension=".p7r" mimeType="application/x-pkcs7-certreqresp" />
+      <mimeMap fileExtension=".p7s" mimeType="application/pkcs7-signature" />
+      <mimeMap fileExtension=".pbm" mimeType="image/x-portable-bitmap" />
+      <mimeMap fileExtension=".pcx" mimeType="application/octet-stream" />
+      <mimeMap fileExtension=".pcz" mimeType="application/octet-stream" />
+      <mimeMap fileExtension=".pdf" mimeType="application/pdf" />
+      <mimeMap fileExtension=".pfb" mimeType="application/octet-stream" />
+      <mimeMap fileExtension=".pfm" mimeType="application/octet-stream" />
+      <mimeMap fileExtension=".pfx" mimeType="application/x-pkcs12" />
+      <mimeMap fileExtension=".pgm" mimeType="image/x-portable-graymap" />
+      <mimeMap fileExtension=".pko" mimeType="application/vnd.ms-pki.pko" />
+      <mimeMap fileExtension=".pma" mimeType="application/x-perfmon" />
+      <mimeMap fileExtension=".pmc" mimeType="application/x-perfmon" />
+      <mimeMap fileExtension=".pml" mimeType="application/x-perfmon" />
+      <mimeMap fileExtension=".pmr" mimeType="application/x-perfmon" />
+      <mimeMap fileExtension=".pmw" mimeType="application/x-perfmon" />
+      <mimeMap fileExtension=".png" mimeType="image/png" />
+      <mimeMap fileExtension=".pnm" mimeType="image/x-portable-anymap" />
+      <mimeMap fileExtension=".pnz" mimeType="image/png" />
+      <mimeMap fileExtension=".pot" mimeType="application/vnd.ms-powerpoint" />
+      <mimeMap fileExtension=".potm" mimeType="application/vnd.ms-powerpoint.template.macroEnabled.12" />
+      <mimeMap fileExtension=".potx" mimeType="application/vnd.openxmlformats-officedocument.presentationml.template" />
+      <mimeMap fileExtension=".ppam" mimeType="application/vnd.ms-powerpoint.addin.macroEnabled.12" />
+      <mimeMap fileExtension=".ppm" mimeType="image/x-portable-pixmap" />
+      <mimeMap fileExtension=".pps" mimeType="application/vnd.ms-powerpoint" />
+      <mimeMap fileExtension=".ppsm" mimeType="application/vnd.ms-powerpoint.slideshow.macroEnabled.12" />
+      <mimeMap fileExtension=".ppsx" mimeType="application/vnd.openxmlformats-officedocument.presentationml.slideshow" />
+      <mimeMap fileExtension=".ppt" mimeType="application/vnd.ms-powerpoint" />
+      <mimeMap fileExtension=".pptm" mimeType="application/vnd.ms-powerpoint.presentation.macroEnabled.12" />
+      <mimeMap fileExtension=".pptx" mimeType="application/vnd.openxmlformats-officedocument.presentationml.presentation" />
+      <mimeMap fileExtension=".prf" mimeType="application/pics-rules" />
+      <mimeMap fileExtension=".prm" mimeType="application/octet-stream" />
+      <mimeMap fileExtension=".prx" mimeType="application/octet-stream" />
+      <mimeMap fileExtension=".ps" mimeType="application/postscript" />
+      <mimeMap fileExtension=".psd" mimeType="application/octet-stream" />
+      <mimeMap fileExtension=".psm" mimeType="application/octet-stream" />
+      <mimeMap fileExtension=".psp" mimeType="application/octet-stream" />
+      <mimeMap fileExtension=".pub" mimeType="application/x-mspublisher" />
+      <mimeMap fileExtension=".qt" mimeType="video/quicktime" />
+      <mimeMap fileExtension=".qtl" mimeType="application/x-quicktimeplayer" />
+      <mimeMap fileExtension=".qxd" mimeType="application/octet-stream" />
+      <mimeMap fileExtension=".ra" mimeType="audio/x-pn-realaudio" />
+      <mimeMap fileExtension=".ram" mimeType="audio/x-pn-realaudio" />
+      <mimeMap fileExtension=".rar" mimeType="application/octet-stream" />
+      <mimeMap fileExtension=".ras" mimeType="image/x-cmu-raster" />
+      <mimeMap fileExtension=".rf" mimeType="image/vnd.rn-realflash" />
+      <mimeMap fileExtension=".rgb" mimeType="image/x-rgb" />
+      <mimeMap fileExtension=".rm" mimeType="application/vnd.rn-realmedia" />
+      <mimeMap fileExtension=".rmi" mimeType="audio/mid" />
+      <mimeMap fileExtension=".roff" mimeType="application/x-troff" />
+      <mimeMap fileExtension=".rpm" mimeType="audio/x-pn-realaudio-plugin" />
+      <mimeMap fileExtension=".rtf" mimeType="application/rtf" />
+      <mimeMap fileExtension=".rtx" mimeType="text/richtext" />
+      <mimeMap fileExtension=".scd" mimeType="application/x-msschedule" />
+      <mimeMap fileExtension=".sct" mimeType="text/scriptlet" />
+      <mimeMap fileExtension=".sea" mimeType="application/octet-stream" />
+      <mimeMap fileExtension=".setpay" mimeType="application/set-payment-initiation" />
+      <mimeMap fileExtension=".setreg" mimeType="application/set-registration-initiation" />
+      <mimeMap fileExtension=".sgml" mimeType="text/sgml" />
+      <mimeMap fileExtension=".sh" mimeType="application/x-sh" />
+      <mimeMap fileExtension=".shar" mimeType="application/x-shar" />
+      <mimeMap fileExtension=".sit" mimeType="application/x-stuffit" />
+      <mimeMap fileExtension=".sldm" mimeType="application/vnd.ms-powerpoint.slide.macroEnabled.12" />
+      <mimeMap fileExtension=".sldx" mimeType="application/vnd.openxmlformats-officedocument.presentationml.slide" />
+      <mimeMap fileExtension=".smd" mimeType="audio/x-smd" />
+      <mimeMap fileExtension=".smi" mimeType="application/octet-stream" />
+      <mimeMap fileExtension=".smx" mimeType="audio/x-smd" />
+      <mimeMap fileExtension=".smz" mimeType="audio/x-smd" />
+      <mimeMap fileExtension=".snd" mimeType="audio/basic" />
+      <mimeMap fileExtension=".snp" mimeType="application/octet-stream" />
+      <mimeMap fileExtension=".spc" mimeType="application/x-pkcs7-certificates" />
+      <mimeMap fileExtension=".spl" mimeType="application/futuresplash" />
+      <mimeMap fileExtension=".spx" mimeType="audio/ogg" />
+      <mimeMap fileExtension=".src" mimeType="application/x-wais-source" />
+      <mimeMap fileExtension=".ssm" mimeType="application/streamingmedia" />
+      <mimeMap fileExtension=".sst" mimeType="application/vnd.ms-pki.certstore" />
+      <mimeMap fileExtension=".stl" mimeType="application/vnd.ms-pki.stl" />
+      <mimeMap fileExtension=".sv4cpio" mimeType="application/x-sv4cpio" />
+      <mimeMap fileExtension=".sv4crc" mimeType="application/x-sv4crc" />
+      <mimeMap fileExtension=".svg" mimeType="image/svg+xml" />
+      <mimeMap fileExtension=".svgz" mimeType="image/svg+xml" />
+      <mimeMap fileExtension=".swf" mimeType="application/x-shockwave-flash" />
+      <mimeMap fileExtension=".t" mimeType="application/x-troff" />
+      <mimeMap fileExtension=".tar" mimeType="application/x-tar" />
+      <mimeMap fileExtension=".tcl" mimeType="application/x-tcl" />
+      <mimeMap fileExtension=".tex" mimeType="application/x-tex" />
+      <mimeMap fileExtension=".texi" mimeType="application/x-texinfo" />
+      <mimeMap fileExtension=".texinfo" mimeType="application/x-texinfo" />
+      <mimeMap fileExtension=".tgz" mimeType="application/x-compressed" />
+      <mimeMap fileExtension=".thmx" mimeType="application/vnd.ms-officetheme" />
+      <mimeMap fileExtension=".thn" mimeType="application/octet-stream" />
+      <mimeMap fileExtension=".tif" mimeType="image/tiff" />
+      <mimeMap fileExtension=".tiff" mimeType="image/tiff" />
+      <mimeMap fileExtension=".toc" mimeType="application/octet-stream" />
+      <mimeMap fileExtension=".tr" mimeType="application/x-troff" />
+      <mimeMap fileExtension=".trm" mimeType="application/x-msterminal" />
+      <mimeMap fileExtension=".ts" mimeType="video/vnd.dlna.mpeg-tts" />
+      <mimeMap fileExtension=".tsv" mimeType="text/tab-separated-values" />
+      <mimeMap fileExtension=".ttf" mimeType="application/octet-stream" />
+      <mimeMap fileExtension=".tts" mimeType="video/vnd.dlna.mpeg-tts" />
+      <mimeMap fileExtension=".txt" mimeType="text/plain" />
+      <mimeMap fileExtension=".u32" mimeType="application/octet-stream" />
+      <mimeMap fileExtension=".uls" mimeType="text/iuls" />
+      <mimeMap fileExtension=".ustar" mimeType="application/x-ustar" />
+      <mimeMap fileExtension=".vbs" mimeType="text/vbscript" />
+      <mimeMap fileExtension=".vcf" mimeType="text/x-vcard" />
+      <mimeMap fileExtension=".vcs" mimeType="text/plain" />
+      <mimeMap fileExtension=".vdx" mimeType="application/vnd.ms-visio.viewer" />
+      <mimeMap fileExtension=".vml" mimeType="text/xml" />
+      <mimeMap fileExtension=".vsd" mimeType="application/vnd.visio" />
+      <mimeMap fileExtension=".vss" mimeType="application/vnd.visio" />
+      <mimeMap fileExtension=".vst" mimeType="application/vnd.visio" />
+      <mimeMap fileExtension=".vsto" mimeType="application/x-ms-vsto" />
+      <mimeMap fileExtension=".vsw" mimeType="application/vnd.visio" />
+      <mimeMap fileExtension=".vsx" mimeType="application/vnd.visio" />
+      <mimeMap fileExtension=".vtx" mimeType="application/vnd.visio" />
+      <mimeMap fileExtension=".wasm" mimeType="application/wasm" />
+      <mimeMap fileExtension=".wav" mimeType="audio/wav" />
+      <mimeMap fileExtension=".wax" mimeType="audio/x-ms-wax" />
+      <mimeMap fileExtension=".wbmp" mimeType="image/vnd.wap.wbmp" />
+      <mimeMap fileExtension=".wcm" mimeType="application/vnd.ms-works" />
+      <mimeMap fileExtension=".wdb" mimeType="application/vnd.ms-works" />
+      <mimeMap fileExtension=".webm" mimeType="video/webm" />
+      <mimeMap fileExtension=".wks" mimeType="application/vnd.ms-works" />
+      <mimeMap fileExtension=".wm" mimeType="video/x-ms-wm" />
+      <mimeMap fileExtension=".wma" mimeType="audio/x-ms-wma" />
+      <mimeMap fileExtension=".wmd" mimeType="application/x-ms-wmd" />
+      <mimeMap fileExtension=".wmf" mimeType="application/x-msmetafile" />
+      <mimeMap fileExtension=".wml" mimeType="text/vnd.wap.wml" />
+      <mimeMap fileExtension=".wmlc" mimeType="application/vnd.wap.wmlc" />
+      <mimeMap fileExtension=".wmls" mimeType="text/vnd.wap.wmlscript" />
+      <mimeMap fileExtension=".wmlsc" mimeType="application/vnd.wap.wmlscriptc" />
+      <mimeMap fileExtension=".wmp" mimeType="video/x-ms-wmp" />
+      <mimeMap fileExtension=".wmv" mimeType="video/x-ms-wmv" />
+      <mimeMap fileExtension=".wmx" mimeType="video/x-ms-wmx" />
+      <mimeMap fileExtension=".wmz" mimeType="application/x-ms-wmz" />
+      <mimeMap fileExtension=".woff" mimeType="font/x-woff" />
+      <mimeMap fileExtension=".woff2" mimeType="application/font-woff2" />
+      <mimeMap fileExtension=".wps" mimeType="application/vnd.ms-works" />
+      <mimeMap fileExtension=".wri" mimeType="application/x-mswrite" />
+      <mimeMap fileExtension=".wrl" mimeType="x-world/x-vrml" />
+      <mimeMap fileExtension=".wrz" mimeType="x-world/x-vrml" />
+      <mimeMap fileExtension=".wsdl" mimeType="text/xml" />
+      <mimeMap fileExtension=".wtv" mimeType="video/x-ms-wtv" />
+      <mimeMap fileExtension=".wvx" mimeType="video/x-ms-wvx" />
+      <mimeMap fileExtension=".x" mimeType="application/directx" />
+      <mimeMap fileExtension=".xaf" mimeType="x-world/x-vrml" />
+      <mimeMap fileExtension=".xaml" mimeType="application/xaml+xml" />
+      <mimeMap fileExtension=".xap" mimeType="application/x-silverlight-app" />
+      <mimeMap fileExtension=".xbap" mimeType="application/x-ms-xbap" />
+      <mimeMap fileExtension=".xbm" mimeType="image/x-xbitmap" />
+      <mimeMap fileExtension=".xdr" mimeType="text/plain" />
+      <mimeMap fileExtension=".xht" mimeType="application/xhtml+xml" />
+      <mimeMap fileExtension=".xhtml" mimeType="application/xhtml+xml" />
+      <mimeMap fileExtension=".xla" mimeType="application/vnd.ms-excel" />
+      <mimeMap fileExtension=".xlam" mimeType="application/vnd.ms-excel.addin.macroEnabled.12" />
+      <mimeMap fileExtension=".xlc" mimeType="application/vnd.ms-excel" />
+      <mimeMap fileExtension=".xlm" mimeType="application/vnd.ms-excel" />
+      <mimeMap fileExtension=".xls" mimeType="application/vnd.ms-excel" />
+      <mimeMap fileExtension=".xlsb" mimeType="application/vnd.ms-excel.sheet.binary.macroEnabled.12" />
+      <mimeMap fileExtension=".xlsm" mimeType="application/vnd.ms-excel.sheet.macroEnabled.12" />
+      <mimeMap fileExtension=".xlsx" mimeType="application/vnd.openxmlformats-officedocument.spreadsheetml.sheet" />
+      <mimeMap fileExtension=".xlt" mimeType="application/vnd.ms-excel" />
+      <mimeMap fileExtension=".xltm" mimeType="application/vnd.ms-excel.template.macroEnabled.12" />
+      <mimeMap fileExtension=".xltx" mimeType="application/vnd.openxmlformats-officedocument.spreadsheetml.template" />
+      <mimeMap fileExtension=".xlw" mimeType="application/vnd.ms-excel" />
+      <mimeMap fileExtension=".xml" mimeType="text/xml" />
+      <mimeMap fileExtension=".xof" mimeType="x-world/x-vrml" />
+      <mimeMap fileExtension=".xpm" mimeType="image/x-xpixmap" />
+      <mimeMap fileExtension=".xps" mimeType="application/vnd.ms-xpsdocument" />
+      <mimeMap fileExtension=".xsd" mimeType="text/xml" />
+      <mimeMap fileExtension=".xsf" mimeType="text/xml" />
+      <mimeMap fileExtension=".xsl" mimeType="text/xml" />
+      <mimeMap fileExtension=".xslt" mimeType="text/xml" />
+      <mimeMap fileExtension=".xsn" mimeType="application/octet-stream" />
+      <mimeMap fileExtension=".xtp" mimeType="application/octet-stream" />
+      <mimeMap fileExtension=".xwd" mimeType="image/x-xwindowdump" />
+      <mimeMap fileExtension=".z" mimeType="application/x-compress" />
+      <mimeMap fileExtension=".zip" mimeType="application/x-zip-compressed" />
+    </staticContent>
+    <tracing>
+      <traceFailedRequests>
+        <add path="*">
+          <traceAreas>
+            <add provider="ASP" verbosity="Verbose" />
+            <add provider="ASPNET" areas="Infrastructure,Module,Page,AppServices" verbosity="Verbose" />
+            <add provider="ISAPI Extension" verbosity="Verbose" />
+            <add provider="WWW Server" areas="Authentication,Security,Filter,StaticFile,CGI,Compression,Cache,RequestNotifications,Module,Rewrite,WebSocket" verbosity="Verbose" />
+          </traceAreas>
+          <failureDefinitions statusCodes="200-999" />
+        </add>
+      </traceFailedRequests>
+      <traceProviderDefinitions>
+        <add name="WWW Server" guid="{3a2a4e84-4c21-4981-ae10-3fda0d9b0f83}">
+          <areas>
+            <clear />
+            <add name="Authentication" value="2" />
+            <add name="Security" value="4" />
+            <add name="Filter" value="8" />
+            <add name="StaticFile" value="16" />
+            <add name="CGI" value="32" />
+            <add name="Compression" value="64" />
+            <add name="Cache" value="128" />
+            <add name="RequestNotifications" value="256" />
+            <add name="Module" value="512" />
+            <add name="Rewrite" value="1024" />
+            <add name="FastCGI" value="4096" />
+            <add name="WebSocket" value="16384" />
+            <add name="ANCM" value="65536" />
+          </areas>
+        </add>
+        <add name="ASP" guid="{06b94d9a-b15e-456e-a4ef-37c984a2cb4b}">
+          <areas>
+            <clear />
+          </areas>
+        </add>
+        <add name="ISAPI Extension" guid="{a1c2040e-8840-4c31-ba11-9871031a19ea}">
+          <areas>
+            <clear />
+          </areas>
+        </add>
+        <add name="ASPNET" guid="{AFF081FE-0247-4275-9C4E-021F3DC1DA35}">
+          <areas>
+            <add name="Infrastructure" value="1" />
+            <add name="Module" value="2" />
+            <add name="Page" value="4" />
+            <add name="AppServices" value="8" />
+          </areas>
+        </add>
+      </traceProviderDefinitions>
+    </tracing>
+    <urlCompression />
+    <validation />
+    <webdav>
+      <globalSettings>
+        <propertyStores>
+          <add name="webdav_simple_prop" image="%IIS_BIN%\webdav_simple_prop.dll" image32="%IIS_BIN%\webdav_simple_prop.dll" />
+        </propertyStores>
+        <lockStores>
+          <add name="webdav_simple_lock" image="%IIS_BIN%\webdav_simple_lock.dll" image32="%IIS_BIN%\webdav_simple_lock.dll" />
+        </lockStores>
+      </globalSettings>
+      <authoring>
+        <locks enabled="true" lockStore="webdav_simple_lock" />
+      </authoring>
+      <authoringRules />
+    </webdav>
+    <webSocket />
+    <applicationInitialization />
+  </system.webServer>
+  <location path="" overrideMode="Allow">
+    <system.webServer>
+      <modules>
+        <add name="IsapiFilterModule" lockItem="true" />
+        <add name="BasicAuthenticationModule" lockItem="true" />
+        <add name="IsapiModule" lockItem="true" />
+        <add name="HttpLoggingModule" lockItem="true" />
+        <add name="DynamicCompressionModule" lockItem="true" />
+        <add name="StaticCompressionModule" lockItem="true" />
+        <add name="DefaultDocumentModule" lockItem="true" />
+        <add name="DirectoryListingModule" lockItem="true" />
+        <add name="ProtocolSupportModule" lockItem="true" />
+        <add name="HttpRedirectionModule" lockItem="true" />
+        <add name="ServerSideIncludeModule" lockItem="true" />
+        <add name="StaticFileModule" lockItem="true" />
+        <add name="AnonymousAuthenticationModule" lockItem="true" />
+        <add name="CertificateMappingAuthenticationModule" lockItem="true" />
+        <add name="UrlAuthorizationModule" lockItem="true" />
+        <add name="WindowsAuthenticationModule" lockItem="true" />
+        <add name="IISCertificateMappingAuthenticationModule" lockItem="true" />
+        <add name="WebMatrixSupportModule" lockItem="true" />
+        <add name="IpRestrictionModule" lockItem="true" />
+        <add name="DynamicIpRestrictionModule" lockItem="true" />
+        <add name="RequestFilteringModule" lockItem="true" />
+        <add name="CustomLoggingModule" lockItem="true" />
+        <add name="CustomErrorModule" lockItem="true" />
+        <add name="FailedRequestsTracingModule" lockItem="true" />
+        <add name="CgiModule" lockItem="true" />
+        <add name="FastCgiModule" lockItem="true" />
+        <!--                <add name="WebDAVModule" /> -->
+        <add name="RewriteModule" />
+        <add name="OutputCache" type="System.Web.Caching.OutputCacheModule" preCondition="managedHandler" />
+        <add name="Session" type="System.Web.SessionState.SessionStateModule" preCondition="managedHandler" />
+        <add name="WindowsAuthentication" type="System.Web.Security.WindowsAuthenticationModule" preCondition="managedHandler" />
+        <add name="FormsAuthentication" type="System.Web.Security.FormsAuthenticationModule" preCondition="managedHandler" />
+        <add name="DefaultAuthentication" type="System.Web.Security.DefaultAuthenticationModule" preCondition="managedHandler" />
+        <add name="RoleManager" type="System.Web.Security.RoleManagerModule" preCondition="managedHandler" />
+        <add name="UrlAuthorization" type="System.Web.Security.UrlAuthorizationModule" preCondition="managedHandler" />
+        <add name="FileAuthorization" type="System.Web.Security.FileAuthorizationModule" preCondition="managedHandler" />
+        <add name="AnonymousIdentification" type="System.Web.Security.AnonymousIdentificationModule" preCondition="managedHandler" />
+        <add name="Profile" type="System.Web.Profile.ProfileModule" preCondition="managedHandler" />
+        <add name="UrlMappingsModule" type="System.Web.UrlMappingsModule" preCondition="managedHandler" />
+        <add name="ApplicationInitializationModule" lockItem="true" />
+        <add name="WebSocketModule" lockItem="true" />
+        <add name="ServiceModel-4.0" type="System.ServiceModel.Activation.ServiceHttpModule,System.ServiceModel.Activation,Version=4.0.0.0,Culture=neutral,PublicKeyToken=31bf3856ad364e35" preCondition="managedHandler,runtimeVersionv4.0" />
+        <add name="ConfigurationValidationModule" lockItem="true" />
+        <add name="UrlRoutingModule-4.0" type="System.Web.Routing.UrlRoutingModule" preCondition="managedHandler,runtimeVersionv4.0" />
+        <add name="ScriptModule-4.0" type="System.Web.Handlers.ScriptModule, System.Web.Extensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" preCondition="managedHandler,runtimeVersionv4.0" />
+        <add name="ServiceModel" type="System.ServiceModel.Activation.HttpModule, System.ServiceModel, Version=3.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" preCondition="managedHandler,runtimeVersionv2.0" />
+        <add name="AspNetCoreModule" lockItem="true" />
+        <add name="AspNetCoreModuleV2" lockItem="true" />
+      </modules>
+      <handlers accessPolicy="Read, Script">
+        <!--                <add name="WebDAV" path="*" verb="PROPFIND,PROPPATCH,MKCOL,PUT,COPY,DELETE,MOVE,LOCK,UNLOCK" modules="WebDAVModule" resourceType="Unspecified" requireAccess="None" /> -->
+        <add name="AXD-ISAPI-4.0_64bit" path="*.axd" verb="GET,HEAD,POST,DEBUG" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework64\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness64" responseBufferLimit="0" />
+        <add name="PageHandlerFactory-ISAPI-4.0_64bit" path="*.aspx" verb="GET,HEAD,POST,DEBUG" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework64\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness64" responseBufferLimit="0" />
+        <add name="SimpleHandlerFactory-ISAPI-4.0_64bit" path="*.ashx" verb="GET,HEAD,POST,DEBUG" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework64\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness64" responseBufferLimit="0" />
+        <add name="WebServiceHandlerFactory-ISAPI-4.0_64bit" path="*.asmx" verb="GET,HEAD,POST,DEBUG" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework64\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness64" responseBufferLimit="0" />
+        <add name="HttpRemotingHandlerFactory-rem-ISAPI-4.0_64bit" path="*.rem" verb="GET,HEAD,POST,DEBUG" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework64\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness64" responseBufferLimit="0" />
+        <add name="HttpRemotingHandlerFactory-soap-ISAPI-4.0_64bit" path="*.soap" verb="GET,HEAD,POST,DEBUG" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework64\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness64" responseBufferLimit="0" />
+        <add name="svc-ISAPI-4.0_64bit" path="*.svc" verb="*" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework64\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness64" />
+        <add name="rules-ISAPI-4.0_64bit" path="*.rules" verb="*" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework64\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness64" />
+        <add name="xoml-ISAPI-4.0_64bit" path="*.xoml" verb="*" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework64\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness64" />
+        <add name="xamlx-ISAPI-4.0_64bit" path="*.xamlx" verb="GET,HEAD,POST,DEBUG" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework64\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness64" />
+        <add name="aspq-ISAPI-4.0_64bit" path="*.aspq" verb="*" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework64\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness64" responseBufferLimit="0" />
+        <add name="cshtm-ISAPI-4.0_64bit" path="*.cshtm" verb="GET,HEAD,POST,DEBUG" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework64\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness64" responseBufferLimit="0" />
+        <add name="cshtml-ISAPI-4.0_64bit" path="*.cshtml" verb="GET,HEAD,POST,DEBUG" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework64\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness64" responseBufferLimit="0" />
+        <add name="vbhtm-ISAPI-4.0_64bit" path="*.vbhtm" verb="GET,HEAD,POST,DEBUG" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework64\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness64" responseBufferLimit="0" />
+        <add name="vbhtml-ISAPI-4.0_64bit" path="*.vbhtml" verb="GET,HEAD,POST,DEBUG" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework64\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness64" responseBufferLimit="0" />
+        <add name="svc-Integrated" path="*.svc" verb="*" type="System.ServiceModel.Activation.HttpHandler, System.ServiceModel, Version=3.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" preCondition="integratedMode,runtimeVersionv2.0" />
+        <add name="svc-ISAPI-2.0" path="*.svc" verb="*" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework\v2.0.50727\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv2.0,bitness32" />
+        <add name="xoml-Integrated" path="*.xoml" verb="*" type="System.ServiceModel.Activation.HttpHandler, System.ServiceModel, Version=3.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" preCondition="integratedMode,runtimeVersionv2.0" />
+        <add name="xoml-ISAPI-2.0" path="*.xoml" verb="*" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework\v2.0.50727\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv2.0,bitness32" />
+        <add name="rules-Integrated" path="*.rules" verb="*" type="System.ServiceModel.Activation.HttpHandler, System.ServiceModel, Version=3.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" preCondition="integratedMode,runtimeVersionv2.0" />
+        <add name="rules-ISAPI-2.0" path="*.rules" verb="*" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework\v2.0.50727\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv2.0,bitness32" />
+        <add name="AXD-ISAPI-4.0_32bit" path="*.axd" verb="GET,HEAD,POST,DEBUG" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness32" responseBufferLimit="0" />
+        <add name="PageHandlerFactory-ISAPI-4.0_32bit" path="*.aspx" verb="GET,HEAD,POST,DEBUG" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness32" responseBufferLimit="0" />
+        <add name="SimpleHandlerFactory-ISAPI-4.0_32bit" path="*.ashx" verb="GET,HEAD,POST,DEBUG" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness32" responseBufferLimit="0" />
+        <add name="WebServiceHandlerFactory-ISAPI-4.0_32bit" path="*.asmx" verb="GET,HEAD,POST,DEBUG" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness32" responseBufferLimit="0" />
+        <add name="HttpRemotingHandlerFactory-rem-ISAPI-4.0_32bit" path="*.rem" verb="GET,HEAD,POST,DEBUG" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness32" responseBufferLimit="0" />
+        <add name="HttpRemotingHandlerFactory-soap-ISAPI-4.0_32bit" path="*.soap" verb="GET,HEAD,POST,DEBUG" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness32" responseBufferLimit="0" />
+        <add name="svc-ISAPI-4.0_32bit" path="*.svc" verb="*" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness32" />
+        <add name="rules-ISAPI-4.0_32bit" path="*.rules" verb="*" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness32" />
+        <add name="xoml-ISAPI-4.0_32bit" path="*.xoml" verb="*" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness32" />
+        <add name="xamlx-ISAPI-4.0_32bit" path="*.xamlx" verb="GET,HEAD,POST,DEBUG" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness32" />
+        <add name="aspq-ISAPI-4.0_32bit" path="*.aspq" verb="*" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness32" responseBufferLimit="0" />
+        <add name="cshtm-ISAPI-4.0_32bit" path="*.cshtm" verb="GET,HEAD,POST,DEBUG" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness32" responseBufferLimit="0" />
+        <add name="cshtml-ISAPI-4.0_32bit" path="*.cshtml" verb="GET,HEAD,POST,DEBUG" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness32" responseBufferLimit="0" />
+        <add name="vbhtm-ISAPI-4.0_32bit" path="*.vbhtm" verb="GET,HEAD,POST,DEBUG" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness32" responseBufferLimit="0" />
+        <add name="vbhtml-ISAPI-4.0_32bit" path="*.vbhtml" verb="GET,HEAD,POST,DEBUG" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness32" responseBufferLimit="0" />
+        <add name="TraceHandler-Integrated-4.0" path="trace.axd" verb="GET,HEAD,POST,DEBUG" type="System.Web.Handlers.TraceHandler" preCondition="integratedMode,runtimeVersionv4.0" />
+        <add name="WebAdminHandler-Integrated-4.0" path="WebAdmin.axd" verb="GET,DEBUG" type="System.Web.Handlers.WebAdminHandler" preCondition="integratedMode,runtimeVersionv4.0" />
+        <add name="AssemblyResourceLoader-Integrated-4.0" path="WebResource.axd" verb="GET,DEBUG" type="System.Web.Handlers.AssemblyResourceLoader" preCondition="integratedMode,runtimeVersionv4.0" />
+        <add name="PageHandlerFactory-Integrated-4.0" path="*.aspx" verb="GET,HEAD,POST,DEBUG" type="System.Web.UI.PageHandlerFactory" preCondition="integratedMode,runtimeVersionv4.0" />
+        <add name="SimpleHandlerFactory-Integrated-4.0" path="*.ashx" verb="GET,HEAD,POST,DEBUG" type="System.Web.UI.SimpleHandlerFactory" preCondition="integratedMode,runtimeVersionv4.0" />
+        <add name="WebServiceHandlerFactory-Integrated-4.0" path="*.asmx" verb="GET,HEAD,POST,DEBUG" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" preCondition="integratedMode,runtimeVersionv4.0" />
+        <add name="HttpRemotingHandlerFactory-rem-Integrated-4.0" path="*.rem" verb="GET,HEAD,POST,DEBUG" type="System.Runtime.Remoting.Channels.Http.HttpRemotingHandlerFactory, System.Runtime.Remoting, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" preCondition="integratedMode,runtimeVersionv4.0" />
+        <add name="HttpRemotingHandlerFactory-soap-Integrated-4.0" path="*.soap" verb="GET,HEAD,POST,DEBUG" type="System.Runtime.Remoting.Channels.Http.HttpRemotingHandlerFactory, System.Runtime.Remoting, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" preCondition="integratedMode,runtimeVersionv4.0" />
+        <add name="svc-Integrated-4.0" path="*.svc" verb="*" type="System.ServiceModel.Activation.ServiceHttpHandlerFactory, System.ServiceModel.Activation, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" preCondition="integratedMode,runtimeVersionv4.0" />
+        <add name="rules-Integrated-4.0" path="*.rules" verb="*" type="System.ServiceModel.Activation.ServiceHttpHandlerFactory, System.ServiceModel.Activation, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" preCondition="integratedMode,runtimeVersionv4.0" />
+        <add name="xoml-Integrated-4.0" path="*.xoml" verb="*" type="System.ServiceModel.Activation.ServiceHttpHandlerFactory, System.ServiceModel.Activation, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" preCondition="integratedMode,runtimeVersionv4.0" />
+        <add name="xamlx-Integrated-4.0" path="*.xamlx" verb="GET,HEAD,POST,DEBUG" type="System.Xaml.Hosting.XamlHttpHandlerFactory, System.Xaml.Hosting, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" preCondition="integratedMode,runtimeVersionv4.0" />
+        <add name="aspq-Integrated-4.0" path="*.aspq" verb="GET,HEAD,POST,DEBUG" type="System.Web.HttpForbiddenHandler" preCondition="integratedMode,runtimeVersionv4.0" />
+        <add name="cshtm-Integrated-4.0" path="*.cshtm" verb="GET,HEAD,POST,DEBUG" type="System.Web.HttpForbiddenHandler" preCondition="integratedMode,runtimeVersionv4.0" />
+        <add name="cshtml-Integrated-4.0" path="*.cshtml" verb="GET,HEAD,POST,DEBUG" type="System.Web.HttpForbiddenHandler" preCondition="integratedMode,runtimeVersionv4.0" />
+        <add name="vbhtm-Integrated-4.0" path="*.vbhtm" verb="GET,HEAD,POST,DEBUG" type="System.Web.HttpForbiddenHandler" preCondition="integratedMode,runtimeVersionv4.0" />
+        <add name="vbhtml-Integrated-4.0" path="*.vbhtml" verb="GET,HEAD,POST,DEBUG" type="System.Web.HttpForbiddenHandler" preCondition="integratedMode,runtimeVersionv4.0" />
+        <add name="ScriptHandlerFactoryAppServices-Integrated-4.0" path="*_AppService.axd" verb="*" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" preCondition="integratedMode,runtimeVersionv4.0" />
+        <add name="ScriptResourceIntegrated-4.0" path="*ScriptResource.axd" verb="GET,HEAD" type="System.Web.Handlers.ScriptResourceHandler, System.Web.Extensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" preCondition="integratedMode,runtimeVersionv4.0" />
+        <add name="ASPClassic" path="*.asp" verb="GET,HEAD,POST" modules="IsapiModule" scriptProcessor="%IIS_BIN%\asp.dll" resourceType="File" />
+        <add name="SecurityCertificate" path="*.cer" verb="GET,HEAD,POST" modules="IsapiModule" scriptProcessor="%IIS_BIN%\asp.dll" resourceType="File" />
+        <add name="ISAPI-dll" path="*.dll" verb="*" modules="IsapiModule" resourceType="File" requireAccess="Execute" allowPathInfo="true" />
+        <add name="TraceHandler-Integrated" path="trace.axd" verb="GET,HEAD,POST,DEBUG" type="System.Web.Handlers.TraceHandler" preCondition="integratedMode,runtimeVersionv2.0" />
+        <add name="WebAdminHandler-Integrated" path="WebAdmin.axd" verb="GET,DEBUG" type="System.Web.Handlers.WebAdminHandler" preCondition="integratedMode,runtimeVersionv2.0" />
+        <add name="AssemblyResourceLoader-Integrated" path="WebResource.axd" verb="GET,DEBUG" type="System.Web.Handlers.AssemblyResourceLoader" preCondition="integratedMode,runtimeVersionv2.0" />
+        <add name="PageHandlerFactory-Integrated" path="*.aspx" verb="GET,HEAD,POST,DEBUG" type="System.Web.UI.PageHandlerFactory" preCondition="integratedMode,runtimeVersionv2.0" />
+        <add name="SimpleHandlerFactory-Integrated" path="*.ashx" verb="GET,HEAD,POST,DEBUG" type="System.Web.UI.SimpleHandlerFactory" preCondition="integratedMode,runtimeVersionv2.0" />
+        <add name="WebServiceHandlerFactory-Integrated" path="*.asmx" verb="GET,HEAD,POST,DEBUG" type="System.Web.Services.Protocols.WebServiceHandlerFactory,System.Web.Services,Version=2.0.0.0,Culture=neutral,PublicKeyToken=b03f5f7f11d50a3a" preCondition="integratedMode,runtimeVersionv2.0" />
+        <add name="HttpRemotingHandlerFactory-rem-Integrated" path="*.rem" verb="GET,HEAD,POST,DEBUG" type="System.Runtime.Remoting.Channels.Http.HttpRemotingHandlerFactory,System.Runtime.Remoting,Version=2.0.0.0,Culture=neutral,PublicKeyToken=b77a5c561934e089" preCondition="integratedMode,runtimeVersionv2.0" />
+        <add name="HttpRemotingHandlerFactory-soap-Integrated" path="*.soap" verb="GET,HEAD,POST,DEBUG" type="System.Runtime.Remoting.Channels.Http.HttpRemotingHandlerFactory,System.Runtime.Remoting,Version=2.0.0.0,Culture=neutral,PublicKeyToken=b77a5c561934e089" preCondition="integratedMode,runtimeVersionv2.0" />
+        <add name="AXD-ISAPI-2.0" path="*.axd" verb="GET,HEAD,POST,DEBUG" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework\v2.0.50727\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv2.0,bitness32" responseBufferLimit="0" />
+        <add name="PageHandlerFactory-ISAPI-2.0" path="*.aspx" verb="GET,HEAD,POST,DEBUG" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework\v2.0.50727\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv2.0,bitness32" responseBufferLimit="0" />
+        <add name="SimpleHandlerFactory-ISAPI-2.0" path="*.ashx" verb="GET,HEAD,POST,DEBUG" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework\v2.0.50727\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv2.0,bitness32" responseBufferLimit="0" />
+        <add name="WebServiceHandlerFactory-ISAPI-2.0" path="*.asmx" verb="GET,HEAD,POST,DEBUG" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework\v2.0.50727\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv2.0,bitness32" responseBufferLimit="0" />
+        <add name="HttpRemotingHandlerFactory-rem-ISAPI-2.0" path="*.rem" verb="GET,HEAD,POST,DEBUG" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework\v2.0.50727\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv2.0,bitness32" responseBufferLimit="0" />
+        <add name="HttpRemotingHandlerFactory-soap-ISAPI-2.0" path="*.soap" verb="GET,HEAD,POST,DEBUG" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework\v2.0.50727\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv2.0,bitness32" responseBufferLimit="0" />
+        <add name="svc-ISAPI-2.0-64" path="*.svc" verb="*" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework64\v2.0.50727\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv2.0,bitness64" />
+        <add name="AXD-ISAPI-2.0-64" path="*.axd" verb="GET,HEAD,POST,DEBUG" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework64\v2.0.50727\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv2.0,bitness64" responseBufferLimit="0" />
+        <add name="PageHandlerFactory-ISAPI-2.0-64" path="*.aspx" verb="GET,HEAD,POST,DEBUG" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework64\v2.0.50727\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv2.0,bitness64" responseBufferLimit="0" />
+        <add name="SimpleHandlerFactory-ISAPI-2.0-64" path="*.ashx" verb="GET,HEAD,POST,DEBUG" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework64\v2.0.50727\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv2.0,bitness64" responseBufferLimit="0" />
+        <add name="WebServiceHandlerFactory-ISAPI-2.0-64" path="*.asmx" verb="GET,HEAD,POST,DEBUG" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework64\v2.0.50727\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv2.0,bitness64" responseBufferLimit="0" />
+        <add name="HttpRemotingHandlerFactory-rem-ISAPI-2.0-64" path="*.rem" verb="GET,HEAD,POST,DEBUG" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework64\v2.0.50727\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv2.0,bitness64" responseBufferLimit="0" />
+        <add name="HttpRemotingHandlerFactory-soap-ISAPI-2.0-64" path="*.soap" verb="GET,HEAD,POST,DEBUG" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework64\v2.0.50727\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv2.0,bitness64" responseBufferLimit="0" />
+        <add name="rules-64-ISAPI-2.0" path="*.rules" verb="*" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework64\v2.0.50727\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv2.0,bitness64" />
+        <add name="xoml-64-ISAPI-2.0" path="*.xoml" verb="*" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework64\v2.0.50727\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv2.0,bitness64" />
+        <add name="CGI-exe" path="*.exe" verb="*" modules="CgiModule" resourceType="File" requireAccess="Execute" allowPathInfo="true" />
+        <add name="SSINC-stm" path="*.stm" verb="GET,HEAD,POST" modules="ServerSideIncludeModule" resourceType="File" />
+        <add name="SSINC-shtm" path="*.shtm" verb="GET,HEAD,POST" modules="ServerSideIncludeModule" resourceType="File" />
+        <add name="SSINC-shtml" path="*.shtml" verb="GET,HEAD,POST" modules="ServerSideIncludeModule" resourceType="File" />
+        <add name="TRACEVerbHandler" path="*" verb="TRACE" modules="ProtocolSupportModule" requireAccess="None" />
+        <add name="OPTIONSVerbHandler" path="*" verb="OPTIONS" modules="ProtocolSupportModule" requireAccess="None" />
+        <add name="ExtensionlessUrlHandler-ISAPI-4.0_32bit" path="*." verb="GET,HEAD,POST,DEBUG" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness32" responseBufferLimit="0" />
+        <add name="ExtensionlessUrlHandler-ISAPI-4.0_64bit" path="*." verb="GET,HEAD,POST,DEBUG" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework64\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness64" responseBufferLimit="0" />
+        <add name="ExtensionlessUrlHandler-Integrated-4.0" path="*." verb="GET,HEAD,POST,DEBUG" type="System.Web.Handlers.TransferRequestHandler" preCondition="integratedMode,runtimeVersionv4.0" responseBufferLimit="0" />
+        <add name="StaticFile" path="*" verb="*" modules="StaticFileModule,DefaultDocumentModule,DirectoryListingModule" resourceType="Either" requireAccess="Read" />
+      </handlers>
     </system.webServer>
-    <location path="" overrideMode="Allow">
-        <system.webServer>
-            <modules>
-                <add name="IsapiFilterModule" lockItem="true" />
-                <add name="BasicAuthenticationModule" lockItem="true" />
-                <add name="IsapiModule" lockItem="true" />
-                <add name="HttpLoggingModule" lockItem="true" />
-                <add name="DynamicCompressionModule" lockItem="true" />
-                <add name="StaticCompressionModule" lockItem="true" />
-                <add name="DefaultDocumentModule" lockItem="true" />
-                <add name="DirectoryListingModule" lockItem="true" />
-                <add name="ProtocolSupportModule" lockItem="true" />
-                <add name="HttpRedirectionModule" lockItem="true" />
-                <add name="ServerSideIncludeModule" lockItem="true" />
-                <add name="StaticFileModule" lockItem="true" />
-                <add name="AnonymousAuthenticationModule" lockItem="true" />
-                <add name="CertificateMappingAuthenticationModule" lockItem="true" />
-                <add name="UrlAuthorizationModule" lockItem="true" />
-                <add name="WindowsAuthenticationModule" lockItem="true" />
-                <add name="IISCertificateMappingAuthenticationModule" lockItem="true" />
-                <add name="WebMatrixSupportModule" lockItem="true" />
-                <add name="IpRestrictionModule" lockItem="true" />
-                <add name="DynamicIpRestrictionModule" lockItem="true" />
-                <add name="RequestFilteringModule" lockItem="true" />
-                <add name="CustomLoggingModule" lockItem="true" />
-                <add name="CustomErrorModule" lockItem="true" />
-                <add name="FailedRequestsTracingModule" lockItem="true" />
-                <add name="CgiModule" lockItem="true" />
-                <add name="FastCgiModule" lockItem="true" />
-<!--                <add name="WebDAVModule" /> -->
-                <add name="RewriteModule" />
-                <add name="OutputCache" type="System.Web.Caching.OutputCacheModule" preCondition="managedHandler" />
-                <add name="Session" type="System.Web.SessionState.SessionStateModule" preCondition="managedHandler" />
-                <add name="WindowsAuthentication" type="System.Web.Security.WindowsAuthenticationModule" preCondition="managedHandler" />
-                <add name="FormsAuthentication" type="System.Web.Security.FormsAuthenticationModule" preCondition="managedHandler" />
-                <add name="DefaultAuthentication" type="System.Web.Security.DefaultAuthenticationModule" preCondition="managedHandler" />
-                <add name="RoleManager" type="System.Web.Security.RoleManagerModule" preCondition="managedHandler" />
-                <add name="UrlAuthorization" type="System.Web.Security.UrlAuthorizationModule" preCondition="managedHandler" />
-                <add name="FileAuthorization" type="System.Web.Security.FileAuthorizationModule" preCondition="managedHandler" />
-                <add name="AnonymousIdentification" type="System.Web.Security.AnonymousIdentificationModule" preCondition="managedHandler" />
-                <add name="Profile" type="System.Web.Profile.ProfileModule" preCondition="managedHandler" />
-                <add name="UrlMappingsModule" type="System.Web.UrlMappingsModule" preCondition="managedHandler" />
-                <add name="ApplicationInitializationModule" lockItem="true" />
-                <add name="WebSocketModule" lockItem="true" />
-                <add name="ServiceModel-4.0" type="System.ServiceModel.Activation.ServiceHttpModule,System.ServiceModel.Activation,Version=4.0.0.0,Culture=neutral,PublicKeyToken=31bf3856ad364e35" preCondition="managedHandler,runtimeVersionv4.0" />
-                <add name="ConfigurationValidationModule" lockItem="true" />
-                <add name="UrlRoutingModule-4.0" type="System.Web.Routing.UrlRoutingModule" preCondition="managedHandler,runtimeVersionv4.0" />
-                <add name="ScriptModule-4.0" type="System.Web.Handlers.ScriptModule, System.Web.Extensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" preCondition="managedHandler,runtimeVersionv4.0" />
-                <add name="ServiceModel" type="System.ServiceModel.Activation.HttpModule, System.ServiceModel, Version=3.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" preCondition="managedHandler,runtimeVersionv2.0" />
-                <add name="AspNetCoreModule" lockItem="true" />
-                <add name="AspNetCoreModuleV2" lockItem="true" />
-            </modules>
-            <handlers accessPolicy="Read, Script">
-<!--                <add name="WebDAV" path="*" verb="PROPFIND,PROPPATCH,MKCOL,PUT,COPY,DELETE,MOVE,LOCK,UNLOCK" modules="WebDAVModule" resourceType="Unspecified" requireAccess="None" /> -->
-                <add name="AXD-ISAPI-4.0_64bit" path="*.axd" verb="GET,HEAD,POST,DEBUG" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework64\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness64" responseBufferLimit="0" />
-                <add name="PageHandlerFactory-ISAPI-4.0_64bit" path="*.aspx" verb="GET,HEAD,POST,DEBUG" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework64\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness64" responseBufferLimit="0" />
-                <add name="SimpleHandlerFactory-ISAPI-4.0_64bit" path="*.ashx" verb="GET,HEAD,POST,DEBUG" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework64\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness64" responseBufferLimit="0" />
-                <add name="WebServiceHandlerFactory-ISAPI-4.0_64bit" path="*.asmx" verb="GET,HEAD,POST,DEBUG" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework64\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness64" responseBufferLimit="0" />
-                <add name="HttpRemotingHandlerFactory-rem-ISAPI-4.0_64bit" path="*.rem" verb="GET,HEAD,POST,DEBUG" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework64\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness64" responseBufferLimit="0" />
-                <add name="HttpRemotingHandlerFactory-soap-ISAPI-4.0_64bit" path="*.soap" verb="GET,HEAD,POST,DEBUG" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework64\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness64" responseBufferLimit="0" />
-                <add name="svc-ISAPI-4.0_64bit" path="*.svc" verb="*" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework64\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness64" />
-                <add name="rules-ISAPI-4.0_64bit" path="*.rules" verb="*" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework64\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness64" />
-                <add name="xoml-ISAPI-4.0_64bit" path="*.xoml" verb="*" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework64\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness64" />
-                <add name="xamlx-ISAPI-4.0_64bit" path="*.xamlx" verb="GET,HEAD,POST,DEBUG" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework64\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness64" />
-                <add name="aspq-ISAPI-4.0_64bit" path="*.aspq" verb="*" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework64\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness64" responseBufferLimit="0" />
-                <add name="cshtm-ISAPI-4.0_64bit" path="*.cshtm" verb="GET,HEAD,POST,DEBUG" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework64\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness64" responseBufferLimit="0" />
-                <add name="cshtml-ISAPI-4.0_64bit" path="*.cshtml" verb="GET,HEAD,POST,DEBUG" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework64\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness64" responseBufferLimit="0" />
-                <add name="vbhtm-ISAPI-4.0_64bit" path="*.vbhtm" verb="GET,HEAD,POST,DEBUG" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework64\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness64" responseBufferLimit="0" />
-                <add name="vbhtml-ISAPI-4.0_64bit" path="*.vbhtml" verb="GET,HEAD,POST,DEBUG" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework64\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness64" responseBufferLimit="0" />
-                <add name="svc-Integrated" path="*.svc" verb="*" type="System.ServiceModel.Activation.HttpHandler, System.ServiceModel, Version=3.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" preCondition="integratedMode,runtimeVersionv2.0" />
-                <add name="svc-ISAPI-2.0" path="*.svc" verb="*" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework\v2.0.50727\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv2.0,bitness32" />
-                <add name="xoml-Integrated" path="*.xoml" verb="*" type="System.ServiceModel.Activation.HttpHandler, System.ServiceModel, Version=3.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" preCondition="integratedMode,runtimeVersionv2.0" />
-                <add name="xoml-ISAPI-2.0" path="*.xoml" verb="*" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework\v2.0.50727\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv2.0,bitness32" />
-                <add name="rules-Integrated" path="*.rules" verb="*" type="System.ServiceModel.Activation.HttpHandler, System.ServiceModel, Version=3.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" preCondition="integratedMode,runtimeVersionv2.0" />
-                <add name="rules-ISAPI-2.0" path="*.rules" verb="*" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework\v2.0.50727\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv2.0,bitness32" />
-                <add name="AXD-ISAPI-4.0_32bit" path="*.axd" verb="GET,HEAD,POST,DEBUG" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness32" responseBufferLimit="0" />
-                <add name="PageHandlerFactory-ISAPI-4.0_32bit" path="*.aspx" verb="GET,HEAD,POST,DEBUG" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness32" responseBufferLimit="0" />
-                <add name="SimpleHandlerFactory-ISAPI-4.0_32bit" path="*.ashx" verb="GET,HEAD,POST,DEBUG" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness32" responseBufferLimit="0" />
-                <add name="WebServiceHandlerFactory-ISAPI-4.0_32bit" path="*.asmx" verb="GET,HEAD,POST,DEBUG" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness32" responseBufferLimit="0" />
-                <add name="HttpRemotingHandlerFactory-rem-ISAPI-4.0_32bit" path="*.rem" verb="GET,HEAD,POST,DEBUG" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness32" responseBufferLimit="0" />
-                <add name="HttpRemotingHandlerFactory-soap-ISAPI-4.0_32bit" path="*.soap" verb="GET,HEAD,POST,DEBUG" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness32" responseBufferLimit="0" />
-                <add name="svc-ISAPI-4.0_32bit" path="*.svc" verb="*" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness32" />
-                <add name="rules-ISAPI-4.0_32bit" path="*.rules" verb="*" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness32" />
-                <add name="xoml-ISAPI-4.0_32bit" path="*.xoml" verb="*" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness32" />
-                <add name="xamlx-ISAPI-4.0_32bit" path="*.xamlx" verb="GET,HEAD,POST,DEBUG" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness32" />
-                <add name="aspq-ISAPI-4.0_32bit" path="*.aspq" verb="*" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness32" responseBufferLimit="0" />
-                <add name="cshtm-ISAPI-4.0_32bit" path="*.cshtm" verb="GET,HEAD,POST,DEBUG" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness32" responseBufferLimit="0" />
-                <add name="cshtml-ISAPI-4.0_32bit" path="*.cshtml" verb="GET,HEAD,POST,DEBUG" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness32" responseBufferLimit="0" />
-                <add name="vbhtm-ISAPI-4.0_32bit" path="*.vbhtm" verb="GET,HEAD,POST,DEBUG" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness32" responseBufferLimit="0" />
-                <add name="vbhtml-ISAPI-4.0_32bit" path="*.vbhtml" verb="GET,HEAD,POST,DEBUG" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness32" responseBufferLimit="0" />
-                <add name="TraceHandler-Integrated-4.0" path="trace.axd" verb="GET,HEAD,POST,DEBUG" type="System.Web.Handlers.TraceHandler" preCondition="integratedMode,runtimeVersionv4.0" />
-                <add name="WebAdminHandler-Integrated-4.0" path="WebAdmin.axd" verb="GET,DEBUG" type="System.Web.Handlers.WebAdminHandler" preCondition="integratedMode,runtimeVersionv4.0" />
-                <add name="AssemblyResourceLoader-Integrated-4.0" path="WebResource.axd" verb="GET,DEBUG" type="System.Web.Handlers.AssemblyResourceLoader" preCondition="integratedMode,runtimeVersionv4.0" />
-                <add name="PageHandlerFactory-Integrated-4.0" path="*.aspx" verb="GET,HEAD,POST,DEBUG" type="System.Web.UI.PageHandlerFactory" preCondition="integratedMode,runtimeVersionv4.0" />
-                <add name="SimpleHandlerFactory-Integrated-4.0" path="*.ashx" verb="GET,HEAD,POST,DEBUG" type="System.Web.UI.SimpleHandlerFactory" preCondition="integratedMode,runtimeVersionv4.0" />
-                <add name="WebServiceHandlerFactory-Integrated-4.0" path="*.asmx" verb="GET,HEAD,POST,DEBUG" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" preCondition="integratedMode,runtimeVersionv4.0" />
-                <add name="HttpRemotingHandlerFactory-rem-Integrated-4.0" path="*.rem" verb="GET,HEAD,POST,DEBUG" type="System.Runtime.Remoting.Channels.Http.HttpRemotingHandlerFactory, System.Runtime.Remoting, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" preCondition="integratedMode,runtimeVersionv4.0" />
-                <add name="HttpRemotingHandlerFactory-soap-Integrated-4.0" path="*.soap" verb="GET,HEAD,POST,DEBUG" type="System.Runtime.Remoting.Channels.Http.HttpRemotingHandlerFactory, System.Runtime.Remoting, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" preCondition="integratedMode,runtimeVersionv4.0" />
-                <add name="svc-Integrated-4.0" path="*.svc" verb="*" type="System.ServiceModel.Activation.ServiceHttpHandlerFactory, System.ServiceModel.Activation, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" preCondition="integratedMode,runtimeVersionv4.0" />
-                <add name="rules-Integrated-4.0" path="*.rules" verb="*" type="System.ServiceModel.Activation.ServiceHttpHandlerFactory, System.ServiceModel.Activation, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" preCondition="integratedMode,runtimeVersionv4.0" />
-                <add name="xoml-Integrated-4.0" path="*.xoml" verb="*" type="System.ServiceModel.Activation.ServiceHttpHandlerFactory, System.ServiceModel.Activation, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" preCondition="integratedMode,runtimeVersionv4.0" />
-                <add name="xamlx-Integrated-4.0" path="*.xamlx" verb="GET,HEAD,POST,DEBUG" type="System.Xaml.Hosting.XamlHttpHandlerFactory, System.Xaml.Hosting, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" preCondition="integratedMode,runtimeVersionv4.0" />
-                <add name="aspq-Integrated-4.0" path="*.aspq" verb="GET,HEAD,POST,DEBUG" type="System.Web.HttpForbiddenHandler" preCondition="integratedMode,runtimeVersionv4.0" />
-                <add name="cshtm-Integrated-4.0" path="*.cshtm" verb="GET,HEAD,POST,DEBUG" type="System.Web.HttpForbiddenHandler" preCondition="integratedMode,runtimeVersionv4.0" />
-                <add name="cshtml-Integrated-4.0" path="*.cshtml" verb="GET,HEAD,POST,DEBUG" type="System.Web.HttpForbiddenHandler" preCondition="integratedMode,runtimeVersionv4.0" />
-                <add name="vbhtm-Integrated-4.0" path="*.vbhtm" verb="GET,HEAD,POST,DEBUG" type="System.Web.HttpForbiddenHandler" preCondition="integratedMode,runtimeVersionv4.0" />
-                <add name="vbhtml-Integrated-4.0" path="*.vbhtml" verb="GET,HEAD,POST,DEBUG" type="System.Web.HttpForbiddenHandler" preCondition="integratedMode,runtimeVersionv4.0" />
-                <add name="ScriptHandlerFactoryAppServices-Integrated-4.0" path="*_AppService.axd" verb="*" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" preCondition="integratedMode,runtimeVersionv4.0" />
-                <add name="ScriptResourceIntegrated-4.0" path="*ScriptResource.axd" verb="GET,HEAD" type="System.Web.Handlers.ScriptResourceHandler, System.Web.Extensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" preCondition="integratedMode,runtimeVersionv4.0" />
-                <add name="ASPClassic" path="*.asp" verb="GET,HEAD,POST" modules="IsapiModule" scriptProcessor="%IIS_BIN%\asp.dll" resourceType="File" />
-                <add name="SecurityCertificate" path="*.cer" verb="GET,HEAD,POST" modules="IsapiModule" scriptProcessor="%IIS_BIN%\asp.dll" resourceType="File" />
-                <add name="ISAPI-dll" path="*.dll" verb="*" modules="IsapiModule" resourceType="File" requireAccess="Execute" allowPathInfo="true" />
-                <add name="TraceHandler-Integrated" path="trace.axd" verb="GET,HEAD,POST,DEBUG" type="System.Web.Handlers.TraceHandler" preCondition="integratedMode,runtimeVersionv2.0" />
-                <add name="WebAdminHandler-Integrated" path="WebAdmin.axd" verb="GET,DEBUG" type="System.Web.Handlers.WebAdminHandler" preCondition="integratedMode,runtimeVersionv2.0" />
-                <add name="AssemblyResourceLoader-Integrated" path="WebResource.axd" verb="GET,DEBUG" type="System.Web.Handlers.AssemblyResourceLoader" preCondition="integratedMode,runtimeVersionv2.0" />
-                <add name="PageHandlerFactory-Integrated" path="*.aspx" verb="GET,HEAD,POST,DEBUG" type="System.Web.UI.PageHandlerFactory" preCondition="integratedMode,runtimeVersionv2.0" />
-                <add name="SimpleHandlerFactory-Integrated" path="*.ashx" verb="GET,HEAD,POST,DEBUG" type="System.Web.UI.SimpleHandlerFactory" preCondition="integratedMode,runtimeVersionv2.0" />
-                <add name="WebServiceHandlerFactory-Integrated" path="*.asmx" verb="GET,HEAD,POST,DEBUG" type="System.Web.Services.Protocols.WebServiceHandlerFactory,System.Web.Services,Version=2.0.0.0,Culture=neutral,PublicKeyToken=b03f5f7f11d50a3a" preCondition="integratedMode,runtimeVersionv2.0" />
-                <add name="HttpRemotingHandlerFactory-rem-Integrated" path="*.rem" verb="GET,HEAD,POST,DEBUG" type="System.Runtime.Remoting.Channels.Http.HttpRemotingHandlerFactory,System.Runtime.Remoting,Version=2.0.0.0,Culture=neutral,PublicKeyToken=b77a5c561934e089" preCondition="integratedMode,runtimeVersionv2.0" />
-                <add name="HttpRemotingHandlerFactory-soap-Integrated" path="*.soap" verb="GET,HEAD,POST,DEBUG" type="System.Runtime.Remoting.Channels.Http.HttpRemotingHandlerFactory,System.Runtime.Remoting,Version=2.0.0.0,Culture=neutral,PublicKeyToken=b77a5c561934e089" preCondition="integratedMode,runtimeVersionv2.0" />
-                <add name="AXD-ISAPI-2.0" path="*.axd" verb="GET,HEAD,POST,DEBUG" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework\v2.0.50727\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv2.0,bitness32" responseBufferLimit="0" />
-                <add name="PageHandlerFactory-ISAPI-2.0" path="*.aspx" verb="GET,HEAD,POST,DEBUG" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework\v2.0.50727\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv2.0,bitness32" responseBufferLimit="0" />
-                <add name="SimpleHandlerFactory-ISAPI-2.0" path="*.ashx" verb="GET,HEAD,POST,DEBUG" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework\v2.0.50727\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv2.0,bitness32" responseBufferLimit="0" />
-                <add name="WebServiceHandlerFactory-ISAPI-2.0" path="*.asmx" verb="GET,HEAD,POST,DEBUG" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework\v2.0.50727\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv2.0,bitness32" responseBufferLimit="0" />
-                <add name="HttpRemotingHandlerFactory-rem-ISAPI-2.0" path="*.rem" verb="GET,HEAD,POST,DEBUG" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework\v2.0.50727\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv2.0,bitness32" responseBufferLimit="0" />
-                <add name="HttpRemotingHandlerFactory-soap-ISAPI-2.0" path="*.soap" verb="GET,HEAD,POST,DEBUG" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework\v2.0.50727\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv2.0,bitness32" responseBufferLimit="0" />
-                <add name="svc-ISAPI-2.0-64" path="*.svc" verb="*" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework64\v2.0.50727\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv2.0,bitness64" />
-                <add name="AXD-ISAPI-2.0-64" path="*.axd" verb="GET,HEAD,POST,DEBUG" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework64\v2.0.50727\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv2.0,bitness64" responseBufferLimit="0" />
-                <add name="PageHandlerFactory-ISAPI-2.0-64" path="*.aspx" verb="GET,HEAD,POST,DEBUG" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework64\v2.0.50727\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv2.0,bitness64" responseBufferLimit="0" />
-                <add name="SimpleHandlerFactory-ISAPI-2.0-64" path="*.ashx" verb="GET,HEAD,POST,DEBUG" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework64\v2.0.50727\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv2.0,bitness64" responseBufferLimit="0" />
-                <add name="WebServiceHandlerFactory-ISAPI-2.0-64" path="*.asmx" verb="GET,HEAD,POST,DEBUG" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework64\v2.0.50727\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv2.0,bitness64" responseBufferLimit="0" />
-                <add name="HttpRemotingHandlerFactory-rem-ISAPI-2.0-64" path="*.rem" verb="GET,HEAD,POST,DEBUG" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework64\v2.0.50727\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv2.0,bitness64" responseBufferLimit="0" />
-                <add name="HttpRemotingHandlerFactory-soap-ISAPI-2.0-64" path="*.soap" verb="GET,HEAD,POST,DEBUG" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework64\v2.0.50727\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv2.0,bitness64" responseBufferLimit="0" />
-                <add name="rules-64-ISAPI-2.0" path="*.rules" verb="*" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework64\v2.0.50727\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv2.0,bitness64" />
-                <add name="xoml-64-ISAPI-2.0" path="*.xoml" verb="*" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework64\v2.0.50727\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv2.0,bitness64" />
-                <add name="CGI-exe" path="*.exe" verb="*" modules="CgiModule" resourceType="File" requireAccess="Execute" allowPathInfo="true" />
-                <add name="SSINC-stm" path="*.stm" verb="GET,HEAD,POST" modules="ServerSideIncludeModule" resourceType="File" />
-                <add name="SSINC-shtm" path="*.shtm" verb="GET,HEAD,POST" modules="ServerSideIncludeModule" resourceType="File" />
-                <add name="SSINC-shtml" path="*.shtml" verb="GET,HEAD,POST" modules="ServerSideIncludeModule" resourceType="File" />
-                <add name="TRACEVerbHandler" path="*" verb="TRACE" modules="ProtocolSupportModule" requireAccess="None" />
-                <add name="OPTIONSVerbHandler" path="*" verb="OPTIONS" modules="ProtocolSupportModule" requireAccess="None" />
-                <add name="ExtensionlessUrlHandler-ISAPI-4.0_32bit" path="*." verb="GET,HEAD,POST,DEBUG" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness32" responseBufferLimit="0" />
-                <add name="ExtensionlessUrlHandler-ISAPI-4.0_64bit" path="*." verb="GET,HEAD,POST,DEBUG" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework64\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness64" responseBufferLimit="0" />
-                <add name="ExtensionlessUrlHandler-Integrated-4.0" path="*." verb="GET,HEAD,POST,DEBUG" type="System.Web.Handlers.TransferRequestHandler" preCondition="integratedMode,runtimeVersionv4.0" responseBufferLimit="0" />
-                <add name="StaticFile" path="*" verb="*" modules="StaticFileModule,DefaultDocumentModule,DirectoryListingModule" resourceType="Either" requireAccess="Read" />
-            </handlers>
-        </system.webServer>
-    </location>
-</configuration>
+  </location>
+  <location path="WIDESEAWCS_Server" inheritInChildApplications="false">
+    <system.webServer>
+      <modules>
+        <remove name="WebMatrixSupportModule" />
+      </modules>
+      <handlers>
+        <add name="aspNetCore" path="*" verb="*" modules="AspNetCoreModuleV2" resourceType="Unspecified" />
+      </handlers>
+      <aspNetCore processPath="%LAUNCHER_PATH%" stdoutLogEnabled="false" hostingModel="InProcess" startupTimeLimit="3600" requestTimeout="23:00:00" />
+      <httpCompression>
+        <dynamicTypes>
+          <add mimeType="text/event-stream" enabled="false" />
+        </dynamicTypes>
+      </httpCompression>
+    </system.webServer>
+  </location>
+</configuration>
\ No newline at end of file
diff --git a/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/v17/.futdcache.v2 b/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/v17/.futdcache.v2
index 5caa28e..bcd519c 100644
--- a/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/v17/.futdcache.v2
+++ b/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/v17/.futdcache.v2
Binary files differ
diff --git a/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/v17/DocumentLayout.json b/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/v17/DocumentLayout.json
index f164c55..1f01da2 100644
--- a/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/v17/DocumentLayout.json
+++ b/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/v17/DocumentLayout.json
@@ -3,48 +3,28 @@
   "WorkspaceRootPath": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\",
   "Documents": [
     {
-      "AbsoluteMoniker": "D:0:0:{A14242DD-DA06-4DC3-8598-1761AA7C76D1}|WIDESEAWCS_SystemServices\\WIDESEAWCS_SystemServices.csproj|e:\\wideseawcs\\infrastructurewcs\\wideseawcs_server\\wideseawcs_systemservices\\sys_userservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
-      "RelativeMoniker": "D:0:0:{A14242DD-DA06-4DC3-8598-1761AA7C76D1}|WIDESEAWCS_SystemServices\\WIDESEAWCS_SystemServices.csproj|solutionrelative:wideseawcs_systemservices\\sys_userservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
-    },
-    {
-      "AbsoluteMoniker": "D:0:0:{BFFDD936-2E61-4D3A-ABFE-7CF77FE0B184}|WIDESEAWCS_Core\\WIDESEAWCS_Core.csproj|E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\wideseawcs_core\\baseservices\\servicebase.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
-      "RelativeMoniker": "D:0:0:{BFFDD936-2E61-4D3A-ABFE-7CF77FE0B184}|WIDESEAWCS_Core\\WIDESEAWCS_Core.csproj|solutionrelative:wideseawcs_core\\baseservices\\servicebase.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
-    },
-    {
-      "AbsoluteMoniker": "D:0:0:{BFFDD936-2E61-4D3A-ABFE-7CF77FE0B184}|WIDESEAWCS_Core\\WIDESEAWCS_Core.csproj|e:\\wideseawcs\\infrastructurewcs\\wideseawcs_server\\wideseawcs_core\\baserepository\\repositorybase.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
-      "RelativeMoniker": "D:0:0:{BFFDD936-2E61-4D3A-ABFE-7CF77FE0B184}|WIDESEAWCS_Core\\WIDESEAWCS_Core.csproj|solutionrelative:wideseawcs_core\\baserepository\\repositorybase.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
-    },
-    {
-      "AbsoluteMoniker": "D:0:0:{BFFDD936-2E61-4D3A-ABFE-7CF77FE0B184}|WIDESEAWCS_Core\\WIDESEAWCS_Core.csproj|e:\\wideseawcs\\infrastructurewcs\\wideseawcs_server\\wideseawcs_core\\baseservices\\servicefunfilter.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
-      "RelativeMoniker": "D:0:0:{BFFDD936-2E61-4D3A-ABFE-7CF77FE0B184}|WIDESEAWCS_Core\\WIDESEAWCS_Core.csproj|solutionrelative:wideseawcs_core\\baseservices\\servicefunfilter.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
-    },
-    {
-      "AbsoluteMoniker": "D:0:0:{BFFDD936-2E61-4D3A-ABFE-7CF77FE0B184}|WIDESEAWCS_Core\\WIDESEAWCS_Core.csproj|e:\\wideseawcs\\infrastructurewcs\\wideseawcs_server\\wideseawcs_core\\baserepository\\irepository.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
-      "RelativeMoniker": "D:0:0:{BFFDD936-2E61-4D3A-ABFE-7CF77FE0B184}|WIDESEAWCS_Core\\WIDESEAWCS_Core.csproj|solutionrelative:wideseawcs_core\\baserepository\\irepository.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
-    },
-    {
-      "AbsoluteMoniker": "D:0:0:{487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}|WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj|E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\wideseawcs_server\\program.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
-      "RelativeMoniker": "D:0:0:{487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}|WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj|solutionrelative:wideseawcs_server\\program.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
-    },
-    {
       "AbsoluteMoniker": "D:0:0:{BFFDD936-2E61-4D3A-ABFE-7CF77FE0B184}|WIDESEAWCS_Core\\WIDESEAWCS_Core.csproj|e:\\wideseawcs\\infrastructurewcs\\wideseawcs_server\\wideseawcs_core\\helper\\appsettings.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
       "RelativeMoniker": "D:0:0:{BFFDD936-2E61-4D3A-ABFE-7CF77FE0B184}|WIDESEAWCS_Core\\WIDESEAWCS_Core.csproj|solutionrelative:wideseawcs_core\\helper\\appsettings.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
     },
     {
-      "AbsoluteMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|e:\\wideseawcs\\infrastructurewcs\\wideseawcs_server\\wideseawcs_quartzjob\\jobbase.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
-      "RelativeMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|solutionrelative:wideseawcs_quartzjob\\jobbase.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+      "AbsoluteMoniker": "D:0:0:{BFFDD936-2E61-4D3A-ABFE-7CF77FE0B184}|WIDESEAWCS_Core\\WIDESEAWCS_Core.csproj|e:\\wideseawcs\\infrastructurewcs\\wideseawcs_server\\wideseawcs_core\\aop\\cacheaop.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+      "RelativeMoniker": "D:0:0:{BFFDD936-2E61-4D3A-ABFE-7CF77FE0B184}|WIDESEAWCS_Core\\WIDESEAWCS_Core.csproj|solutionrelative:wideseawcs_core\\aop\\cacheaop.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
     },
     {
-      "AbsoluteMoniker": "D:0:0:{BFFDD936-2E61-4D3A-ABFE-7CF77FE0B184}|WIDESEAWCS_Core\\WIDESEAWCS_Core.csproj|e:\\wideseawcs\\infrastructurewcs\\wideseawcs_server\\wideseawcs_core\\extensions\\sqlsugarsetup.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
-      "RelativeMoniker": "D:0:0:{BFFDD936-2E61-4D3A-ABFE-7CF77FE0B184}|WIDESEAWCS_Core\\WIDESEAWCS_Core.csproj|solutionrelative:wideseawcs_core\\extensions\\sqlsugarsetup.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+      "AbsoluteMoniker": "D:0:0:{BFFDD936-2E61-4D3A-ABFE-7CF77FE0B184}|WIDESEAWCS_Core\\WIDESEAWCS_Core.csproj|e:\\wideseawcs\\infrastructurewcs\\wideseawcs_server\\wideseawcs_core\\helper\\md5helper.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+      "RelativeMoniker": "D:0:0:{BFFDD936-2E61-4D3A-ABFE-7CF77FE0B184}|WIDESEAWCS_Core\\WIDESEAWCS_Core.csproj|solutionrelative:wideseawcs_core\\helper\\md5helper.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
     },
     {
-      "AbsoluteMoniker": "D:0:0:{487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}|WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj|e:\\wideseawcs\\infrastructurewcs\\wideseawcs_server\\wideseawcs_server\\appsettings.json||{90A6B3A7-C1A3-4009-A288-E2FF89E96FA0}",
-      "RelativeMoniker": "D:0:0:{487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}|WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj|solutionrelative:wideseawcs_server\\appsettings.json||{90A6B3A7-C1A3-4009-A288-E2FF89E96FA0}"
+      "AbsoluteMoniker": "D:0:0:{487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}|WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj|e:\\wideseawcs\\infrastructurewcs\\wideseawcs_server\\wideseawcs_server\\program.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+      "RelativeMoniker": "D:0:0:{487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}|WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj|solutionrelative:wideseawcs_server\\program.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
     },
     {
-      "AbsoluteMoniker": "D:0:0:{BFFDD936-2E61-4D3A-ABFE-7CF77FE0B184}|WIDESEAWCS_Core\\WIDESEAWCS_Core.csproj|E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\wideseawcs_core\\extensions\\swaggersetup.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
-      "RelativeMoniker": "D:0:0:{BFFDD936-2E61-4D3A-ABFE-7CF77FE0B184}|WIDESEAWCS_Core\\WIDESEAWCS_Core.csproj|solutionrelative:wideseawcs_core\\extensions\\swaggersetup.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+      "AbsoluteMoniker": "D:0:0:{BFFDD936-2E61-4D3A-ABFE-7CF77FE0B184}|WIDESEAWCS_Core\\WIDESEAWCS_Core.csproj|e:\\wideseawcs\\infrastructurewcs\\wideseawcs_server\\wideseawcs_core\\baseservices\\servicebase.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+      "RelativeMoniker": "D:0:0:{BFFDD936-2E61-4D3A-ABFE-7CF77FE0B184}|WIDESEAWCS_Core\\WIDESEAWCS_Core.csproj|solutionrelative:wideseawcs_core\\baseservices\\servicebase.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+    },
+    {
+      "AbsoluteMoniker": "D:0:0:{BFFDD936-2E61-4D3A-ABFE-7CF77FE0B184}|WIDESEAWCS_Core\\WIDESEAWCS_Core.csproj|e:\\wideseawcs\\infrastructurewcs\\wideseawcs_server\\wideseawcs_core\\helper\\objectextension.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+      "RelativeMoniker": "D:0:0:{BFFDD936-2E61-4D3A-ABFE-7CF77FE0B184}|WIDESEAWCS_Core\\WIDESEAWCS_Core.csproj|solutionrelative:wideseawcs_core\\helper\\objectextension.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
     },
     {
       "AbsoluteMoniker": "D:0:0:{487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}|WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj|e:\\wideseawcs\\infrastructurewcs\\wideseawcs_server\\wideseawcs_server\\controllers\\system\\sys_dictionarycontroller.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
@@ -55,104 +35,76 @@
       "RelativeMoniker": "D:0:0:{A14242DD-DA06-4DC3-8598-1761AA7C76D1}|WIDESEAWCS_SystemServices\\WIDESEAWCS_SystemServices.csproj|solutionrelative:wideseawcs_systemservices\\sys_dictionaryservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
     },
     {
-      "AbsoluteMoniker": "D:0:0:{5777BDEC-4726-4425-85F2-A090524F692D}|WIDESEAWCS_SystemRepository\\WIDESEAWCS_SystemRepository.csproj|e:\\wideseawcs\\infrastructurewcs\\wideseawcs_server\\wideseawcs_systemrepository\\sys_dictionaryrepository.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
-      "RelativeMoniker": "D:0:0:{5777BDEC-4726-4425-85F2-A090524F692D}|WIDESEAWCS_SystemRepository\\WIDESEAWCS_SystemRepository.csproj|solutionrelative:wideseawcs_systemrepository\\sys_dictionaryrepository.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+      "AbsoluteMoniker": "D:0:0:{BFFDD936-2E61-4D3A-ABFE-7CF77FE0B184}|WIDESEAWCS_Core\\WIDESEAWCS_Core.csproj|e:\\wideseawcs\\infrastructurewcs\\wideseawcs_server\\wideseawcs_core\\caches\\memorycacheservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+      "RelativeMoniker": "D:0:0:{BFFDD936-2E61-4D3A-ABFE-7CF77FE0B184}|WIDESEAWCS_Core\\WIDESEAWCS_Core.csproj|solutionrelative:wideseawcs_core\\caches\\memorycacheservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
     },
     {
-      "AbsoluteMoniker": "D:0:0:{A14242DD-DA06-4DC3-8598-1761AA7C76D1}|WIDESEAWCS_SystemServices\\WIDESEAWCS_SystemServices.csproj|e:\\wideseawcs\\infrastructurewcs\\wideseawcs_server\\wideseawcs_systemservices\\sys_roleservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
-      "RelativeMoniker": "D:0:0:{A14242DD-DA06-4DC3-8598-1761AA7C76D1}|WIDESEAWCS_SystemServices\\WIDESEAWCS_SystemServices.csproj|solutionrelative:wideseawcs_systemservices\\sys_roleservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+      "AbsoluteMoniker": "D:0:0:{A14242DD-DA06-4DC3-8598-1761AA7C76D1}|WIDESEAWCS_SystemServices\\WIDESEAWCS_SystemServices.csproj|e:\\wideseawcs\\infrastructurewcs\\wideseawcs_server\\wideseawcs_systemservices\\sys_userservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+      "RelativeMoniker": "D:0:0:{A14242DD-DA06-4DC3-8598-1761AA7C76D1}|WIDESEAWCS_SystemServices\\WIDESEAWCS_SystemServices.csproj|solutionrelative:wideseawcs_systemservices\\sys_userservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
     },
     {
-      "AbsoluteMoniker": "D:0:0:{9E4BFF47-52BF-4FD8-9CC7-3763BF19D9E0}|WIDESEAWCS_ISystemServices\\WIDESEAWCS_ISystemServices.csproj|e:\\wideseawcs\\infrastructurewcs\\wideseawcs_server\\wideseawcs_isystemservices\\isys_dictionaryservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
-      "RelativeMoniker": "D:0:0:{9E4BFF47-52BF-4FD8-9CC7-3763BF19D9E0}|WIDESEAWCS_ISystemServices\\WIDESEAWCS_ISystemServices.csproj|solutionrelative:wideseawcs_isystemservices\\isys_dictionaryservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+      "AbsoluteMoniker": "D:0:0:{BFFDD936-2E61-4D3A-ABFE-7CF77FE0B184}|WIDESEAWCS_Core\\WIDESEAWCS_Core.csproj|e:\\wideseawcs\\infrastructurewcs\\wideseawcs_server\\wideseawcs_core\\caches\\icacheservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+      "RelativeMoniker": "D:0:0:{BFFDD936-2E61-4D3A-ABFE-7CF77FE0B184}|WIDESEAWCS_Core\\WIDESEAWCS_Core.csproj|solutionrelative:wideseawcs_core\\caches\\icacheservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
     },
     {
-      "AbsoluteMoniker": "D:0:0:{7F200FE8-CAF6-4131-BD25-8D438FE0ABAC}|WIDESEAWCS_Model\\WIDESEAWCS_Model.csproj|e:\\wideseawcs\\infrastructurewcs\\wideseawcs_server\\wideseawcs_model\\models\\system\\sys_dictionarylist.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
-      "RelativeMoniker": "D:0:0:{7F200FE8-CAF6-4131-BD25-8D438FE0ABAC}|WIDESEAWCS_Model\\WIDESEAWCS_Model.csproj|solutionrelative:wideseawcs_model\\models\\system\\sys_dictionarylist.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+      "AbsoluteMoniker": "D:0:0:{BFFDD936-2E61-4D3A-ABFE-7CF77FE0B184}|WIDESEAWCS_Core\\WIDESEAWCS_Core.csproj|e:\\wideseawcs\\infrastructurewcs\\wideseawcs_server\\wideseawcs_core\\attributes\\cacheattribute.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+      "RelativeMoniker": "D:0:0:{BFFDD936-2E61-4D3A-ABFE-7CF77FE0B184}|WIDESEAWCS_Core\\WIDESEAWCS_Core.csproj|solutionrelative:wideseawcs_core\\attributes\\cacheattribute.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
     },
     {
-      "AbsoluteMoniker": "D:0:0:{487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}|WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj|e:\\wideseawcs\\infrastructurewcs\\wideseawcs_server\\wideseawcs_server\\controllers\\system\\sys_usercontroller.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
-      "RelativeMoniker": "D:0:0:{487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}|WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj|solutionrelative:wideseawcs_server\\controllers\\system\\sys_usercontroller.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+      "AbsoluteMoniker": "D:0:0:{BFFDD936-2E61-4D3A-ABFE-7CF77FE0B184}|WIDESEAWCS_Core\\WIDESEAWCS_Core.csproj|e:\\wideseawcs\\infrastructurewcs\\wideseawcs_server\\wideseawcs_core\\aop\\sqlsugaraop.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+      "RelativeMoniker": "D:0:0:{BFFDD936-2E61-4D3A-ABFE-7CF77FE0B184}|WIDESEAWCS_Core\\WIDESEAWCS_Core.csproj|solutionrelative:wideseawcs_core\\aop\\sqlsugaraop.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
     },
     {
-      "AbsoluteMoniker": "D:0:0:{861C4D0B-A478-48DB-A0FA-AE70F5BA210A}|WIDESEAWCS_Communicator\\WIDESEAWCS_Communicator.csproj|e:\\wideseawcs\\infrastructurewcs\\wideseawcs_server\\wideseawcs_communicator\\wideseawcs_communicator.csproj||{FA3CD31E-987B-443A-9B81-186104E8DAC1}|",
-      "RelativeMoniker": "D:0:0:{861C4D0B-A478-48DB-A0FA-AE70F5BA210A}|WIDESEAWCS_Communicator\\WIDESEAWCS_Communicator.csproj|solutionrelative:wideseawcs_communicator\\wideseawcs_communicator.csproj||{FA3CD31E-987B-443A-9B81-186104E8DAC1}|"
+      "AbsoluteMoniker": "D:0:0:{BFFDD936-2E61-4D3A-ABFE-7CF77FE0B184}|WIDESEAWCS_Core\\WIDESEAWCS_Core.csproj|e:\\wideseawcs\\infrastructurewcs\\wideseawcs_server\\wideseawcs_core\\attributes\\modelvalidateattribute.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+      "RelativeMoniker": "D:0:0:{BFFDD936-2E61-4D3A-ABFE-7CF77FE0B184}|WIDESEAWCS_Core\\WIDESEAWCS_Core.csproj|solutionrelative:wideseawcs_core\\attributes\\modelvalidateattribute.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
     },
     {
-      "AbsoluteMoniker": "D:0:0:{861C4D0B-A478-48DB-A0FA-AE70F5BA210A}|WIDESEAWCS_Communicator\\WIDESEAWCS_Communicator.csproj|E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\wideseawcs_communicator\\modbus\\modbustcpcommunicator.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
-      "RelativeMoniker": "D:0:0:{861C4D0B-A478-48DB-A0FA-AE70F5BA210A}|WIDESEAWCS_Communicator\\WIDESEAWCS_Communicator.csproj|solutionrelative:wideseawcs_communicator\\modbus\\modbustcpcommunicator.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+      "AbsoluteMoniker": "D:0:0:{BFFDD936-2E61-4D3A-ABFE-7CF77FE0B184}|WIDESEAWCS_Core\\WIDESEAWCS_Core.csproj|e:\\wideseawcs\\infrastructurewcs\\wideseawcs_server\\wideseawcs_core\\aop\\logaop.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+      "RelativeMoniker": "D:0:0:{BFFDD936-2E61-4D3A-ABFE-7CF77FE0B184}|WIDESEAWCS_Core\\WIDESEAWCS_Core.csproj|solutionrelative:wideseawcs_core\\aop\\logaop.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
     },
     {
-      "AbsoluteMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\wideseawcs_quartzjob\\wideseawcs_quartzjob.csproj||{FA3CD31E-987B-443A-9B81-186104E8DAC1}|",
-      "RelativeMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|solutionrelative:wideseawcs_quartzjob\\wideseawcs_quartzjob.csproj||{FA3CD31E-987B-443A-9B81-186104E8DAC1}|"
+      "AbsoluteMoniker": "D:0:0:{BFFDD936-2E61-4D3A-ABFE-7CF77FE0B184}|WIDESEAWCS_Core\\WIDESEAWCS_Core.csproj|e:\\wideseawcs\\infrastructurewcs\\wideseawcs_server\\wideseawcs_core\\utilities\\modelvalidate.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+      "RelativeMoniker": "D:0:0:{BFFDD936-2E61-4D3A-ABFE-7CF77FE0B184}|WIDESEAWCS_Core\\WIDESEAWCS_Core.csproj|solutionrelative:wideseawcs_core\\utilities\\modelvalidate.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
     },
     {
-      "AbsoluteMoniker": "D:0:0:{294E4915-0241-4C8C-BA99-7588B945863A}|WIDESEAWCS_Tasks\\WIDESEAWCS_Tasks.csproj|E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\wideseawcs_tasks\\conveyorlinejob\\commonconveyorlinejob.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
-      "RelativeMoniker": "D:0:0:{294E4915-0241-4C8C-BA99-7588B945863A}|WIDESEAWCS_Tasks\\WIDESEAWCS_Tasks.csproj|solutionrelative:wideseawcs_tasks\\conveyorlinejob\\commonconveyorlinejob.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+      "AbsoluteMoniker": "D:0:0:{BFFDD936-2E61-4D3A-ABFE-7CF77FE0B184}|WIDESEAWCS_Core\\WIDESEAWCS_Core.csproj|e:\\wideseawcs\\infrastructurewcs\\wideseawcs_server\\wideseawcs_core\\apidoc\\htmlhelper.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+      "RelativeMoniker": "D:0:0:{BFFDD936-2E61-4D3A-ABFE-7CF77FE0B184}|WIDESEAWCS_Core\\WIDESEAWCS_Core.csproj|solutionrelative:wideseawcs_core\\apidoc\\htmlhelper.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
     },
     {
-      "AbsoluteMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\wideseawcs_quartzjob\\conveyorline\\commonconveyorline.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
-      "RelativeMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|solutionrelative:wideseawcs_quartzjob\\conveyorline\\commonconveyorline.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+      "AbsoluteMoniker": "D:0:0:{BFFDD936-2E61-4D3A-ABFE-7CF77FE0B184}|WIDESEAWCS_Core\\WIDESEAWCS_Core.csproj|e:\\wideseawcs\\infrastructurewcs\\wideseawcs_server\\wideseawcs_core\\apidoc\\bytehelper.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+      "RelativeMoniker": "D:0:0:{BFFDD936-2E61-4D3A-ABFE-7CF77FE0B184}|WIDESEAWCS_Core\\WIDESEAWCS_Core.csproj|solutionrelative:wideseawcs_core\\apidoc\\bytehelper.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
     },
     {
-      "AbsoluteMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\wideseawcs_quartzjob\\dto\\deviceprodto.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
-      "RelativeMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|solutionrelative:wideseawcs_quartzjob\\dto\\deviceprodto.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+      "AbsoluteMoniker": "D:0:0:{83F18A31-5983-4587-A0B2-414BF70E50B5}|WIDESEAWCS_TaskInfoService\\WIDESEAWCS_TaskInfoService.csproj|e:\\wideseawcs\\infrastructurewcs\\wideseawcs_server\\wideseawcs_taskinfoservice\\taskservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+      "RelativeMoniker": "D:0:0:{83F18A31-5983-4587-A0B2-414BF70E50B5}|WIDESEAWCS_TaskInfoService\\WIDESEAWCS_TaskInfoService.csproj|solutionrelative:wideseawcs_taskinfoservice\\taskservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
     },
     {
-      "AbsoluteMoniker": "D:0:0:{294E4915-0241-4C8C-BA99-7588B945863A}|WIDESEAWCS_Tasks\\WIDESEAWCS_Tasks.csproj|E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\wideseawcs_tasks\\conveyorlinejob\\conveyorlinetaskcommand.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+      "AbsoluteMoniker": "D:0:0:{861C4D0B-A478-48DB-A0FA-AE70F5BA210A}|WIDESEAWCS_Communicator\\WIDESEAWCS_Communicator.csproj|e:\\wideseawcs\\infrastructurewcs\\wideseawcs_server\\wideseawcs_communicator\\custommodel\\siemenscustommodel.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+      "RelativeMoniker": "D:0:0:{861C4D0B-A478-48DB-A0FA-AE70F5BA210A}|WIDESEAWCS_Communicator\\WIDESEAWCS_Communicator.csproj|solutionrelative:wideseawcs_communicator\\custommodel\\siemenscustommodel.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+    },
+    {
+      "AbsoluteMoniker": "D:0:0:{861C4D0B-A478-48DB-A0FA-AE70F5BA210A}|WIDESEAWCS_Communicator\\WIDESEAWCS_Communicator.csproj|e:\\wideseawcs\\infrastructurewcs\\wideseawcs_server\\wideseawcs_communicator\\custommodel\\melseccustommodel.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+      "RelativeMoniker": "D:0:0:{861C4D0B-A478-48DB-A0FA-AE70F5BA210A}|WIDESEAWCS_Communicator\\WIDESEAWCS_Communicator.csproj|solutionrelative:wideseawcs_communicator\\custommodel\\melseccustommodel.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+    },
+    {
+      "AbsoluteMoniker": "D:0:0:{861C4D0B-A478-48DB-A0FA-AE70F5BA210A}|WIDESEAWCS_Communicator\\WIDESEAWCS_Communicator.csproj|e:\\wideseawcs\\infrastructurewcs\\wideseawcs_server\\wideseawcs_communicator\\custommodel\\modbuscustommodel.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+      "RelativeMoniker": "D:0:0:{861C4D0B-A478-48DB-A0FA-AE70F5BA210A}|WIDESEAWCS_Communicator\\WIDESEAWCS_Communicator.csproj|solutionrelative:wideseawcs_communicator\\custommodel\\modbuscustommodel.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+    },
+    {
+      "AbsoluteMoniker": "D:0:0:{294E4915-0241-4C8C-BA99-7588B945863A}|WIDESEAWCS_Tasks\\WIDESEAWCS_Tasks.csproj|e:\\wideseawcs\\infrastructurewcs\\wideseawcs_server\\wideseawcs_tasks\\conveyorlinejob\\conveyorlinetaskcommand.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
       "RelativeMoniker": "D:0:0:{294E4915-0241-4C8C-BA99-7588B945863A}|WIDESEAWCS_Tasks\\WIDESEAWCS_Tasks.csproj|solutionrelative:wideseawcs_tasks\\conveyorlinejob\\conveyorlinetaskcommand.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
     },
     {
-      "AbsoluteMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\wideseawcs_quartzjob\\quartzextensions\\quartzjobhostedservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
-      "RelativeMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|solutionrelative:wideseawcs_quartzjob\\quartzextensions\\quartzjobhostedservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
-    },
-    {
-      "AbsoluteMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\wideseawcs_quartzjob\\quartzextensions\\quartzjobdatatablehostedservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
-      "RelativeMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|solutionrelative:wideseawcs_quartzjob\\quartzextensions\\quartzjobdatatablehostedservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
-    },
-    {
-      "AbsoluteMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\wideseawcs_quartzjob\\quartzextensions\\quartzjobautofacmoduleregister.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
-      "RelativeMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|solutionrelative:wideseawcs_quartzjob\\quartzextensions\\quartzjobautofacmoduleregister.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
-    },
-    {
-      "AbsoluteMoniker": "D:0:0:{861C4D0B-A478-48DB-A0FA-AE70F5BA210A}|WIDESEAWCS_Communicator\\WIDESEAWCS_Communicator.csproj|E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\wideseawcs_communicator\\inovance\\inovancetcpcommunicator.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
-      "RelativeMoniker": "D:0:0:{861C4D0B-A478-48DB-A0FA-AE70F5BA210A}|WIDESEAWCS_Communicator\\WIDESEAWCS_Communicator.csproj|solutionrelative:wideseawcs_communicator\\inovance\\inovancetcpcommunicator.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
-    },
-    {
-      "AbsoluteMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\wideseawcs_quartzjob\\stackercrane\\common\\commonstackercrane.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
-      "RelativeMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|solutionrelative:wideseawcs_quartzjob\\stackercrane\\common\\commonstackercrane.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
-    },
-    {
-      "AbsoluteMoniker": "D:0:0:{294E4915-0241-4C8C-BA99-7588B945863A}|WIDESEAWCS_Tasks\\WIDESEAWCS_Tasks.csproj|E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\wideseawcs_tasks\\stackercranejob\\commonstackercranejob.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
-      "RelativeMoniker": "D:0:0:{294E4915-0241-4C8C-BA99-7588B945863A}|WIDESEAWCS_Tasks\\WIDESEAWCS_Tasks.csproj|solutionrelative:wideseawcs_tasks\\stackercranejob\\commonstackercranejob.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
-    },
-    {
-      "AbsoluteMoniker": "D:0:0:{487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}|WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj|E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\wideseawcs_server\\wideseawcs_server.csproj||{FA3CD31E-987B-443A-9B81-186104E8DAC1}|",
-      "RelativeMoniker": "D:0:0:{487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}|WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj|solutionrelative:wideseawcs_server\\wideseawcs_server.csproj||{FA3CD31E-987B-443A-9B81-186104E8DAC1}|"
-    },
-    {
-      "AbsoluteMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\wideseawcs_quartzjob\\stackercrane\\spec\\spestackercrane.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
-      "RelativeMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|solutionrelative:wideseawcs_quartzjob\\stackercrane\\spec\\spestackercrane.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
-    },
-    {
-      "AbsoluteMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\wideseawcs_quartzjob\\shuttlecar\\shuttlecar.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
-      "RelativeMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|solutionrelative:wideseawcs_quartzjob\\shuttlecar\\shuttlecar.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
-    },
-    {
-      "AbsoluteMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\wideseawcs_quartzjob\\devicebase\\devicecommand.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+      "AbsoluteMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|e:\\wideseawcs\\infrastructurewcs\\wideseawcs_server\\wideseawcs_quartzjob\\devicebase\\devicecommand.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
       "RelativeMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|solutionrelative:wideseawcs_quartzjob\\devicebase\\devicecommand.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
     },
     {
-      "AbsoluteMoniker": "D:0:0:{487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}|WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj|E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\wideseawcs_server\\index.html||{40D31677-CBC0-4297-A9EF-89D907823A98}",
-      "RelativeMoniker": "D:0:0:{487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}|WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj|solutionrelative:wideseawcs_server\\index.html||{40D31677-CBC0-4297-A9EF-89D907823A98}"
+      "AbsoluteMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|e:\\wideseawcs\\infrastructurewcs\\wideseawcs_server\\wideseawcs_quartzjob\\devicebase\\datalengthattribute.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+      "RelativeMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|solutionrelative:wideseawcs_quartzjob\\devicebase\\datalengthattribute.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
     },
     {
-      "AbsoluteMoniker": "D:0:0:{BFFDD936-2E61-4D3A-ABFE-7CF77FE0B184}|WIDESEAWCS_Core\\WIDESEAWCS_Core.csproj|E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\wideseawcs_core\\authorization\\authorizationsetup.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
-      "RelativeMoniker": "D:0:0:{BFFDD936-2E61-4D3A-ABFE-7CF77FE0B184}|WIDESEAWCS_Core\\WIDESEAWCS_Core.csproj|solutionrelative:wideseawcs_core\\authorization\\authorizationsetup.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
-    },
-    {
-      "AbsoluteMoniker": "D:0:0:{BFFDD936-2E61-4D3A-ABFE-7CF77FE0B184}|WIDESEAWCS_Core\\WIDESEAWCS_Core.csproj|E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\wideseawcs_core\\middlewares\\swaggermiddleware.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
-      "RelativeMoniker": "D:0:0:{BFFDD936-2E61-4D3A-ABFE-7CF77FE0B184}|WIDESEAWCS_Core\\WIDESEAWCS_Core.csproj|solutionrelative:wideseawcs_core\\middlewares\\swaggermiddleware.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+      "AbsoluteMoniker": "D:0:0:{83F18A31-5983-4587-A0B2-414BF70E50B5}|WIDESEAWCS_TaskInfoService\\WIDESEAWCS_TaskInfoService.csproj|e:\\wideseawcs\\infrastructurewcs\\wideseawcs_server\\wideseawcs_taskinfoservice\\taskexecutedetailservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+      "RelativeMoniker": "D:0:0:{83F18A31-5983-4587-A0B2-414BF70E50B5}|WIDESEAWCS_TaskInfoService\\WIDESEAWCS_TaskInfoService.csproj|solutionrelative:wideseawcs_taskinfoservice\\taskexecutedetailservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
     }
   ],
   "DocumentGroupContainers": [
@@ -162,7 +114,7 @@
       "DocumentGroups": [
         {
           "DockedWidth": 200,
-          "SelectedChildIndex": 7,
+          "SelectedChildIndex": 4,
           "Children": [
             {
               "$type": "Bookmark",
@@ -182,480 +134,340 @@
             },
             {
               "$type": "Document",
-              "DocumentIndex": 3,
-              "Title": "ServiceFunFilter.cs",
-              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Core\\BaseServices\\ServiceFunFilter.cs",
-              "RelativeDocumentMoniker": "WIDESEAWCS_Core\\BaseServices\\ServiceFunFilter.cs",
-              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Core\\BaseServices\\ServiceFunFilter.cs",
-              "RelativeToolTip": "WIDESEAWCS_Core\\BaseServices\\ServiceFunFilter.cs",
-              "ViewState": "AQIAAAAAAAAAAAAAAAAAAAAAAAAAAAAA",
-              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
-              "WhenOpened": "2024-10-25T07:54:55.42Z",
-              "EditorCaption": ""
-            },
-            {
-              "$type": "Document",
-              "DocumentIndex": 2,
-              "Title": "RepositoryBase.cs",
-              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Core\\BaseRepository\\RepositoryBase.cs",
-              "RelativeDocumentMoniker": "WIDESEAWCS_Core\\BaseRepository\\RepositoryBase.cs",
-              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Core\\BaseRepository\\RepositoryBase.cs",
-              "RelativeToolTip": "WIDESEAWCS_Core\\BaseRepository\\RepositoryBase.cs",
-              "ViewState": "AQIAAMoBAAAAAAAAAIA+wAoCAAAMAAAA",
-              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
-              "WhenOpened": "2024-10-25T07:53:37.074Z",
-              "EditorCaption": ""
-            },
-            {
-              "$type": "Document",
-              "DocumentIndex": 4,
-              "Title": "IRepository.cs",
-              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Core\\BaseRepository\\IRepository.cs",
-              "RelativeDocumentMoniker": "WIDESEAWCS_Core\\BaseRepository\\IRepository.cs",
-              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Core\\BaseRepository\\IRepository.cs",
-              "RelativeToolTip": "WIDESEAWCS_Core\\BaseRepository\\IRepository.cs",
-              "ViewState": "AQIAAAAAAAAAAAAAAAAAAAAAAAAAAAAA",
-              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
-              "WhenOpened": "2024-10-25T07:53:36.355Z",
-              "EditorCaption": ""
-            },
-            {
-              "$type": "Document",
               "DocumentIndex": 0,
-              "Title": "Sys_UserService.cs",
-              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_SystemServices\\Sys_UserService.cs",
-              "RelativeDocumentMoniker": "WIDESEAWCS_SystemServices\\Sys_UserService.cs",
-              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_SystemServices\\Sys_UserService.cs",
-              "RelativeToolTip": "WIDESEAWCS_SystemServices\\Sys_UserService.cs",
-              "ViewState": "AQIAADwAAAAAAAAAAAAIwBsAAAAAAAAA",
-              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
-              "WhenOpened": "2024-10-25T07:04:27.837Z",
-              "EditorCaption": ""
-            },
-            {
-              "$type": "Document",
-              "DocumentIndex": 11,
-              "Title": "Sys_DictionaryController.cs",
-              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Server\\Controllers\\System\\Sys_DictionaryController.cs",
-              "RelativeDocumentMoniker": "WIDESEAWCS_Server\\Controllers\\System\\Sys_DictionaryController.cs",
-              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Server\\Controllers\\System\\Sys_DictionaryController.cs",
-              "RelativeToolTip": "WIDESEAWCS_Server\\Controllers\\System\\Sys_DictionaryController.cs",
-              "ViewState": "AQIAABsAAAAAAAAAAAAvwF4AAAARAAAA",
-              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
-              "WhenOpened": "2024-10-25T06:21:25.509Z",
-              "EditorCaption": ""
-            },
-            {
-              "$type": "Document",
-              "DocumentIndex": 16,
-              "Title": "Sys_DictionaryList.cs",
-              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Model\\Models\\System\\Sys_DictionaryList.cs",
-              "RelativeDocumentMoniker": "WIDESEAWCS_Model\\Models\\System\\Sys_DictionaryList.cs",
-              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Model\\Models\\System\\Sys_DictionaryList.cs",
-              "RelativeToolTip": "WIDESEAWCS_Model\\Models\\System\\Sys_DictionaryList.cs",
-              "ViewState": "AQIAAAYAAAAAAAAAAAAAAAwAAAARAAAA",
-              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
-              "WhenOpened": "2024-10-25T06:15:27.12Z",
-              "EditorCaption": ""
-            },
-            {
-              "$type": "Document",
-              "DocumentIndex": 17,
-              "Title": "Sys_UserController.cs",
-              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Server\\Controllers\\System\\Sys_UserController.cs",
-              "RelativeDocumentMoniker": "WIDESEAWCS_Server\\Controllers\\System\\Sys_UserController.cs",
-              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Server\\Controllers\\System\\Sys_UserController.cs",
-              "RelativeToolTip": "WIDESEAWCS_Server\\Controllers\\System\\Sys_UserController.cs",
-              "ViewState": "AQIAAC0AAAAAAAAAAAAIwEcAAAAhAAAA",
-              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
-              "WhenOpened": "2024-10-25T06:10:03.91Z",
-              "EditorCaption": ""
-            },
-            {
-              "$type": "Document",
-              "DocumentIndex": 12,
-              "Title": "Sys_DictionaryService.cs",
-              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_SystemServices\\Sys_DictionaryService.cs",
-              "RelativeDocumentMoniker": "WIDESEAWCS_SystemServices\\Sys_DictionaryService.cs",
-              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_SystemServices\\Sys_DictionaryService.cs",
-              "RelativeToolTip": "WIDESEAWCS_SystemServices\\Sys_DictionaryService.cs",
-              "ViewState": "AQIAAEUAAAAAAAAAAAAEwG0AAAAMAAAA",
-              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
-              "WhenOpened": "2024-10-25T05:54:44.964Z",
-              "EditorCaption": ""
-            },
-            {
-              "$type": "Document",
-              "DocumentIndex": 1,
-              "Title": "ServiceBase.cs",
-              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Core\\BaseServices\\ServiceBase.cs",
-              "RelativeDocumentMoniker": "WIDESEAWCS_Core\\BaseServices\\ServiceBase.cs",
-              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Core\\BaseServices\\ServiceBase.cs",
-              "RelativeToolTip": "WIDESEAWCS_Core\\BaseServices\\ServiceBase.cs",
-              "ViewState": "AQIAAGUAAAAAAAAAAAAMwIUAAAARAAAA",
-              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
-              "WhenOpened": "2024-10-22T04:27:55.148Z",
-              "EditorCaption": ""
-            },
-            {
-              "$type": "Document",
-              "DocumentIndex": 13,
-              "Title": "Sys_DictionaryRepository.cs",
-              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_SystemRepository\\Sys_DictionaryRepository.cs",
-              "RelativeDocumentMoniker": "WIDESEAWCS_SystemRepository\\Sys_DictionaryRepository.cs",
-              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_SystemRepository\\Sys_DictionaryRepository.cs",
-              "RelativeToolTip": "WIDESEAWCS_SystemRepository\\Sys_DictionaryRepository.cs",
-              "ViewState": "AQIAAAMAAAAAAAAAAAAlwBsAAABHAAAA",
-              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
-              "WhenOpened": "2024-10-25T03:06:06.908Z",
-              "EditorCaption": ""
-            },
-            {
-              "$type": "Document",
-              "DocumentIndex": 8,
-              "Title": "SqlsugarSetup.cs",
-              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Core\\Extensions\\SqlsugarSetup.cs",
-              "RelativeDocumentMoniker": "WIDESEAWCS_Core\\Extensions\\SqlsugarSetup.cs",
-              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Core\\Extensions\\SqlsugarSetup.cs",
-              "RelativeToolTip": "WIDESEAWCS_Core\\Extensions\\SqlsugarSetup.cs",
-              "ViewState": "AQIAABQAAAAAAAAAAAAwwDsAAAAhAAAA",
-              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
-              "WhenOpened": "2024-10-25T07:49:25.394Z",
-              "EditorCaption": ""
-            },
-            {
-              "$type": "Document",
-              "DocumentIndex": 6,
               "Title": "AppSettings.cs",
               "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Core\\Helper\\AppSettings.cs",
               "RelativeDocumentMoniker": "WIDESEAWCS_Core\\Helper\\AppSettings.cs",
               "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Core\\Helper\\AppSettings.cs",
               "RelativeToolTip": "WIDESEAWCS_Core\\Helper\\AppSettings.cs",
-              "ViewState": "AQIAACIAAAAAAAAAAAAewE4AAAAMAAAA",
+              "ViewState": "AQIAADsAAAAAAAAAAAAYwAAAAAAAAAAA",
               "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
-              "WhenOpened": "2024-10-25T03:05:35.882Z",
+              "WhenOpened": "2024-10-29T07:35:41.197Z",
               "EditorCaption": ""
             },
             {
               "$type": "Document",
-              "DocumentIndex": 5,
+              "DocumentIndex": 2,
+              "Title": "MD5Helper.cs",
+              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Core\\Helper\\MD5Helper.cs",
+              "RelativeDocumentMoniker": "WIDESEAWCS_Core\\Helper\\MD5Helper.cs",
+              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Core\\Helper\\MD5Helper.cs",
+              "RelativeToolTip": "WIDESEAWCS_Core\\Helper\\MD5Helper.cs",
+              "ViewState": "AQIAAAAAAAAAAAAAAAAAAGMAAAAFAAAA",
+              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+              "WhenOpened": "2024-10-29T07:32:56.232Z",
+              "EditorCaption": ""
+            },
+            {
+              "$type": "Document",
+              "DocumentIndex": 3,
               "Title": "Program.cs",
               "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Server\\Program.cs",
               "RelativeDocumentMoniker": "WIDESEAWCS_Server\\Program.cs",
               "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Server\\Program.cs",
               "RelativeToolTip": "WIDESEAWCS_Server\\Program.cs",
-              "ViewState": "AQIAACcAAAAAAAAAAAAAAD0AAAACAAAA",
+              "ViewState": "AQIAAFoAAAAAAAAAAAAAAHYAAAAfAAAA",
               "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
-              "WhenOpened": "2024-10-22T01:09:37.829Z",
+              "WhenOpened": "2024-10-29T07:30:53.392Z",
+              "EditorCaption": ""
+            },
+            {
+              "$type": "Document",
+              "DocumentIndex": 5,
+              "Title": "ObjectExtension.cs",
+              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Core\\Helper\\ObjectExtension.cs",
+              "RelativeDocumentMoniker": "WIDESEAWCS_Core\\Helper\\ObjectExtension.cs",
+              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Core\\Helper\\ObjectExtension.cs",
+              "RelativeToolTip": "WIDESEAWCS_Core\\Helper\\ObjectExtension.cs",
+              "ViewState": "AQIAAAAAAAAAAAAAAAAAABgAAAAMAAAA",
+              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+              "WhenOpened": "2024-10-29T07:27:01.38Z",
+              "EditorCaption": ""
+            },
+            {
+              "$type": "Document",
+              "DocumentIndex": 4,
+              "Title": "ServiceBase.cs",
+              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Core\\BaseServices\\ServiceBase.cs",
+              "RelativeDocumentMoniker": "WIDESEAWCS_Core\\BaseServices\\ServiceBase.cs",
+              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Core\\BaseServices\\ServiceBase.cs",
+              "RelativeToolTip": "WIDESEAWCS_Core\\BaseServices\\ServiceBase.cs",
+              "ViewState": "AQIAAPEAAAAAAAAAAAAqwAQBAAAfAAAA",
+              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+              "WhenOpened": "2024-10-29T07:26:42.953Z",
               "EditorCaption": ""
             },
             {
               "$type": "Document",
               "DocumentIndex": 7,
-              "Title": "JobBase.cs",
-              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\JobBase.cs",
-              "RelativeDocumentMoniker": "WIDESEAWCS_QuartzJob\\JobBase.cs",
-              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\JobBase.cs",
-              "RelativeToolTip": "WIDESEAWCS_QuartzJob\\JobBase.cs",
-              "ViewState": "AQIAABoAAAAAAAAAAAAWwDQAAAAcAAAA",
+              "Title": "Sys_DictionaryService.cs",
+              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_SystemServices\\Sys_DictionaryService.cs",
+              "RelativeDocumentMoniker": "WIDESEAWCS_SystemServices\\Sys_DictionaryService.cs",
+              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_SystemServices\\Sys_DictionaryService.cs",
+              "RelativeToolTip": "WIDESEAWCS_SystemServices\\Sys_DictionaryService.cs",
+              "ViewState": "AQIAAB4AAAAAAAAAAAAewCoAAAAXAAAA",
               "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
-              "WhenOpened": "2024-10-25T07:51:52.135Z",
+              "WhenOpened": "2024-10-29T07:02:40.902Z",
+              "EditorCaption": ""
+            },
+            {
+              "$type": "Document",
+              "DocumentIndex": 6,
+              "Title": "Sys_DictionaryController.cs",
+              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Server\\Controllers\\System\\Sys_DictionaryController.cs",
+              "RelativeDocumentMoniker": "WIDESEAWCS_Server\\Controllers\\System\\Sys_DictionaryController.cs",
+              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Server\\Controllers\\System\\Sys_DictionaryController.cs",
+              "RelativeToolTip": "WIDESEAWCS_Server\\Controllers\\System\\Sys_DictionaryController.cs",
+              "ViewState": "AQIAAC0AAAAAAAAAAADgvysAAABBAAAA",
+              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+              "WhenOpened": "2024-10-29T07:01:59.572Z",
               "EditorCaption": ""
             },
             {
               "$type": "Document",
               "DocumentIndex": 9,
-              "Title": "appsettings.json",
-              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Server\\appsettings.json",
-              "RelativeDocumentMoniker": "WIDESEAWCS_Server\\appsettings.json",
-              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Server\\appsettings.json",
-              "RelativeToolTip": "WIDESEAWCS_Server\\appsettings.json",
-              "ViewState": "AQIAAAAAAAAAAAAAAAAAABsAAAASAAAA",
-              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.001642|",
-              "WhenOpened": "2024-10-25T07:50:40.066Z",
+              "Title": "Sys_UserService.cs",
+              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_SystemServices\\Sys_UserService.cs",
+              "RelativeDocumentMoniker": "WIDESEAWCS_SystemServices\\Sys_UserService.cs",
+              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_SystemServices\\Sys_UserService.cs",
+              "RelativeToolTip": "WIDESEAWCS_SystemServices\\Sys_UserService.cs",
+              "ViewState": "AQIAACoAAAAAAAAAAAArwEMAAAAXAAAA",
+              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+              "WhenOpened": "2024-10-29T07:01:10.75Z",
               "EditorCaption": ""
             },
             {
               "$type": "Document",
-              "DocumentIndex": 15,
-              "Title": "ISys_DictionaryService.cs",
-              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_ISystemServices\\ISys_DictionaryService.cs",
-              "RelativeDocumentMoniker": "WIDESEAWCS_ISystemServices\\ISys_DictionaryService.cs",
-              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_ISystemServices\\ISys_DictionaryService.cs",
-              "RelativeToolTip": "WIDESEAWCS_ISystemServices\\ISys_DictionaryService.cs",
-              "ViewState": "AQIAAAAAAAAAAAAAAAAAAA0AAAAfAAAA",
+              "DocumentIndex": 11,
+              "Title": "CacheAttribute.cs",
+              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Core\\Attributes\\CacheAttribute.cs",
+              "RelativeDocumentMoniker": "WIDESEAWCS_Core\\Attributes\\CacheAttribute.cs",
+              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Core\\Attributes\\CacheAttribute.cs",
+              "RelativeToolTip": "WIDESEAWCS_Core\\Attributes\\CacheAttribute.cs",
+              "ViewState": "AQIAAAAAAAAAAAAAAAAAABEAAAA5AAAA",
               "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
-              "WhenOpened": "2024-10-25T06:21:29.957Z",
+              "WhenOpened": "2024-10-29T06:44:12.196Z",
+              "EditorCaption": ""
+            },
+            {
+              "$type": "Document",
+              "DocumentIndex": 1,
+              "Title": "CacheAOP.cs",
+              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Core\\AOP\\CacheAOP.cs",
+              "RelativeDocumentMoniker": "WIDESEAWCS_Core\\AOP\\CacheAOP.cs",
+              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Core\\AOP\\CacheAOP.cs",
+              "RelativeToolTip": "WIDESEAWCS_Core\\AOP\\CacheAOP.cs",
+              "ViewState": "AQIAAAAAAAAAAAAAAAAAAJMAAAAJAAAA",
+              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+              "WhenOpened": "2024-10-29T06:42:33.623Z",
               "EditorCaption": ""
             },
             {
               "$type": "Document",
               "DocumentIndex": 10,
-              "Title": "SwaggerSetup.cs",
-              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Core\\Extensions\\SwaggerSetup.cs",
-              "RelativeDocumentMoniker": "WIDESEAWCS_Core\\Extensions\\SwaggerSetup.cs",
-              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Core\\Extensions\\SwaggerSetup.cs",
-              "RelativeToolTip": "WIDESEAWCS_Core\\Extensions\\SwaggerSetup.cs",
-              "ViewState": "AQIAAAkAAAAAAAAAAAAAADoAAAA3AAAA",
+              "Title": "ICacheService.cs",
+              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Core\\Caches\\ICacheService.cs",
+              "RelativeDocumentMoniker": "WIDESEAWCS_Core\\Caches\\ICacheService.cs",
+              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Core\\Caches\\ICacheService.cs",
+              "RelativeToolTip": "WIDESEAWCS_Core\\Caches\\ICacheService.cs",
+              "ViewState": "AQIAAAcAAAAAAAAAAAAhwB8AAAAIAAAA",
               "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
-              "WhenOpened": "2024-10-21T07:07:09.329Z",
+              "WhenOpened": "2024-10-29T06:34:56.04Z",
+              "EditorCaption": ""
+            },
+            {
+              "$type": "Document",
+              "DocumentIndex": 8,
+              "Title": "MemoryCacheService.cs",
+              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Core\\Caches\\MemoryCacheService.cs",
+              "RelativeDocumentMoniker": "WIDESEAWCS_Core\\Caches\\MemoryCacheService.cs",
+              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Core\\Caches\\MemoryCacheService.cs",
+              "RelativeToolTip": "WIDESEAWCS_Core\\Caches\\MemoryCacheService.cs",
+              "ViewState": "AQIAAE0AAAAAAAAAAAAewDoAAABpAAAA",
+              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+              "WhenOpened": "2024-10-29T06:34:53.123Z",
+              "EditorCaption": ""
+            },
+            {
+              "$type": "Document",
+              "DocumentIndex": 15,
+              "Title": "ModelValidate.cs",
+              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Core\\Utilities\\ModelValidate.cs",
+              "RelativeDocumentMoniker": "WIDESEAWCS_Core\\Utilities\\ModelValidate.cs",
+              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Core\\Utilities\\ModelValidate.cs",
+              "RelativeToolTip": "WIDESEAWCS_Core\\Utilities\\ModelValidate.cs",
+              "ViewState": "AQIAAAAAAAAAAAAAAAAAAMUAAAAJAAAA",
+              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+              "WhenOpened": "2024-10-29T05:49:56.779Z",
+              "EditorCaption": ""
+            },
+            {
+              "$type": "Document",
+              "DocumentIndex": 13,
+              "Title": "ModelValidateAttribute.cs",
+              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Core\\Attributes\\ModelValidateAttribute.cs",
+              "RelativeDocumentMoniker": "WIDESEAWCS_Core\\Attributes\\ModelValidateAttribute.cs",
+              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Core\\Attributes\\ModelValidateAttribute.cs",
+              "RelativeToolTip": "WIDESEAWCS_Core\\Attributes\\ModelValidateAttribute.cs",
+              "ViewState": "AQIAAAIAAAAAAAAAAAAiwBMAAAA5AAAA",
+              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+              "WhenOpened": "2024-10-29T05:49:32.594Z",
+              "EditorCaption": ""
+            },
+            {
+              "$type": "Document",
+              "DocumentIndex": 16,
+              "Title": "HtmlHelper.cs",
+              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Core\\ApiDoc\\HtmlHelper.cs",
+              "RelativeDocumentMoniker": "WIDESEAWCS_Core\\ApiDoc\\HtmlHelper.cs",
+              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Core\\ApiDoc\\HtmlHelper.cs",
+              "RelativeToolTip": "WIDESEAWCS_Core\\ApiDoc\\HtmlHelper.cs",
+              "ViewState": "AQIAABsAAAAAAAAAAAAywAAAAAAAAAAA",
+              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+              "WhenOpened": "2024-10-29T05:47:49.063Z",
+              "EditorCaption": ""
+            },
+            {
+              "$type": "Document",
+              "DocumentIndex": 17,
+              "Title": "ByteHelper.cs",
+              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Core\\ApiDoc\\ByteHelper.cs",
+              "RelativeDocumentMoniker": "WIDESEAWCS_Core\\ApiDoc\\ByteHelper.cs",
+              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Core\\ApiDoc\\ByteHelper.cs",
+              "RelativeToolTip": "WIDESEAWCS_Core\\ApiDoc\\ByteHelper.cs",
+              "ViewState": "AQIAAAAAAAAAAAAAAAAAAAAAAAAAAAAA",
+              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+              "WhenOpened": "2024-10-29T05:47:48.38Z",
+              "EditorCaption": ""
+            },
+            {
+              "$type": "Document",
+              "DocumentIndex": 12,
+              "Title": "SqlSugarAop.cs",
+              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Core\\AOP\\SqlSugarAop.cs",
+              "RelativeDocumentMoniker": "WIDESEAWCS_Core\\AOP\\SqlSugarAop.cs",
+              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Core\\AOP\\SqlSugarAop.cs",
+              "RelativeToolTip": "WIDESEAWCS_Core\\AOP\\SqlSugarAop.cs",
+              "ViewState": "AQIAAAkAAAAAAAAAAAAAAEkAAAARAAAA",
+              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+              "WhenOpened": "2024-10-29T05:36:07.083Z",
               "EditorCaption": ""
             },
             {
               "$type": "Document",
               "DocumentIndex": 14,
-              "Title": "Sys_RoleService.cs",
-              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_SystemServices\\Sys_RoleService.cs",
-              "RelativeDocumentMoniker": "WIDESEAWCS_SystemServices\\Sys_RoleService.cs",
-              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_SystemServices\\Sys_RoleService.cs",
-              "RelativeToolTip": "WIDESEAWCS_SystemServices\\Sys_RoleService.cs",
-              "ViewState": "AQIAAKQAAAAAAAAAAAAiwMIAAAAuAAAA",
+              "Title": "LogAOP.cs",
+              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Core\\AOP\\LogAOP.cs",
+              "RelativeDocumentMoniker": "WIDESEAWCS_Core\\AOP\\LogAOP.cs",
+              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Core\\AOP\\LogAOP.cs",
+              "RelativeToolTip": "WIDESEAWCS_Core\\AOP\\LogAOP.cs",
+              "ViewState": "AQIAAAAAAAAAAAAAAAAAAAAAAAAAAAAA",
               "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
-              "WhenOpened": "2024-10-25T06:39:35.327Z",
+              "WhenOpened": "2024-10-29T05:36:05.934Z",
               "EditorCaption": ""
-            },
-            {
-              "$type": "Document",
-              "DocumentIndex": 18,
-              "Title": "WIDESEAWCS_Communicator.csproj",
-              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Communicator\\WIDESEAWCS_Communicator.csproj",
-              "RelativeDocumentMoniker": "WIDESEAWCS_Communicator\\WIDESEAWCS_Communicator.csproj",
-              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Communicator\\WIDESEAWCS_Communicator.csproj",
-              "RelativeToolTip": "WIDESEAWCS_Communicator\\WIDESEAWCS_Communicator.csproj",
-              "ViewState": "AQIAAAAAAAAAAAAAAAAAAAcAAABOAAAA",
-              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000758|",
-              "WhenOpened": "2024-10-25T02:07:42.031Z",
-              "EditorCaption": ""
-            },
-            {
-              "$type": "Document",
-              "DocumentIndex": 20,
-              "Title": "WIDESEAWCS_QuartzJob.csproj",
-              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj",
-              "RelativeDocumentMoniker": "WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj",
-              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj",
-              "RelativeToolTip": "WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj",
-              "ViewState": "AQIAAAAAAAAAAAAAAAAAAAYAAAAiAAAA",
-              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000758|",
-              "WhenOpened": "2024-10-25T02:06:53.829Z",
-              "EditorCaption": ""
-            },
-            {
-              "$type": "Document",
-              "DocumentIndex": 32,
-              "Title": "SpeStackerCrane.cs",
-              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\StackerCrane\\Spec\\SpeStackerCrane.cs",
-              "RelativeDocumentMoniker": "WIDESEAWCS_QuartzJob\\StackerCrane\\Spec\\SpeStackerCrane.cs",
-              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\StackerCrane\\Spec\\SpeStackerCrane.cs",
-              "RelativeToolTip": "WIDESEAWCS_QuartzJob\\StackerCrane\\Spec\\SpeStackerCrane.cs",
-              "ViewState": "AQIAALQAAAAAAAAAAAAlwNYAAAANAAAA",
-              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
-              "WhenOpened": "2024-10-25T01:38:52.718Z"
             },
             {
               "$type": "Document",
               "DocumentIndex": 24,
-              "Title": "ConveyorLineTaskCommand.cs",
-              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Tasks\\ConveyorLineJob\\ConveyorLineTaskCommand.cs",
-              "RelativeDocumentMoniker": "WIDESEAWCS_Tasks\\ConveyorLineJob\\ConveyorLineTaskCommand.cs",
-              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Tasks\\ConveyorLineJob\\ConveyorLineTaskCommand.cs",
-              "RelativeToolTip": "WIDESEAWCS_Tasks\\ConveyorLineJob\\ConveyorLineTaskCommand.cs",
-              "ViewState": "AQIAAAAAAAAAAAAAAAAAABoAAAArAAAA",
+              "Title": "DataLengthAttribute.cs",
+              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\DeviceBase\\DataLengthAttribute.cs",
+              "RelativeDocumentMoniker": "WIDESEAWCS_QuartzJob\\DeviceBase\\DataLengthAttribute.cs",
+              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\DeviceBase\\DataLengthAttribute.cs",
+              "RelativeToolTip": "WIDESEAWCS_QuartzJob\\DeviceBase\\DataLengthAttribute.cs",
+              "ViewState": "AQIAAAAAAAAAAAAAAAAAACIAAAAFAAAA",
               "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
-              "WhenOpened": "2024-10-25T01:26:14.425Z"
-            },
-            {
-              "$type": "Document",
-              "DocumentIndex": 21,
-              "Title": "CommonConveyorLineJob.cs",
-              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Tasks\\ConveyorLineJob\\CommonConveyorLineJob.cs",
-              "RelativeDocumentMoniker": "WIDESEAWCS_Tasks\\ConveyorLineJob\\CommonConveyorLineJob.cs",
-              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Tasks\\ConveyorLineJob\\CommonConveyorLineJob.cs",
-              "RelativeToolTip": "WIDESEAWCS_Tasks\\ConveyorLineJob\\CommonConveyorLineJob.cs",
-              "ViewState": "AQIAACwAAAAAAAAAAADgv0MAAAAYAAAA",
-              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
-              "WhenOpened": "2024-10-25T01:26:48.017Z"
-            },
-            {
-              "$type": "Document",
-              "DocumentIndex": 19,
-              "Title": "ModbusTcpCommunicator.cs",
-              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Communicator\\Modbus\\ModbusTcpCommunicator.cs",
-              "RelativeDocumentMoniker": "WIDESEAWCS_Communicator\\Modbus\\ModbusTcpCommunicator.cs",
-              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Communicator\\Modbus\\ModbusTcpCommunicator.cs",
-              "RelativeToolTip": "WIDESEAWCS_Communicator\\Modbus\\ModbusTcpCommunicator.cs",
-              "ViewState": "AQIAAAgBAAAAAAAAAAAxwJkBAAAqAAAA",
-              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
-              "WhenOpened": "2024-10-25T01:14:02.746Z"
-            },
-            {
-              "$type": "Document",
-              "DocumentIndex": 29,
-              "Title": "CommonStackerCrane.cs",
-              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\StackerCrane\\Common\\CommonStackerCrane.cs",
-              "RelativeDocumentMoniker": "WIDESEAWCS_QuartzJob\\StackerCrane\\Common\\CommonStackerCrane.cs",
-              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\StackerCrane\\Common\\CommonStackerCrane.cs",
-              "RelativeToolTip": "WIDESEAWCS_QuartzJob\\StackerCrane\\Common\\CommonStackerCrane.cs",
-              "ViewState": "AQIAAOAAAAAAAAAAAIA0wB4BAAAMAAAA",
-              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
-              "WhenOpened": "2024-10-25T01:41:55.119Z"
+              "WhenOpened": "2024-10-29T03:06:58.382Z",
+              "EditorCaption": ""
             },
             {
               "$type": "Document",
               "DocumentIndex": 23,
-              "Title": "DeviceProDTO.cs",
-              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\DTO\\DeviceProDTO.cs",
-              "RelativeDocumentMoniker": "WIDESEAWCS_QuartzJob\\DTO\\DeviceProDTO.cs",
-              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\DTO\\DeviceProDTO.cs",
-              "RelativeToolTip": "WIDESEAWCS_QuartzJob\\DTO\\DeviceProDTO.cs",
-              "ViewState": "AQIAABkAAAAAAAAAAAAAAEAAAAA3AAAA",
-              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
-              "WhenOpened": "2024-10-25T01:57:36.474Z"
-            },
-            {
-              "$type": "Document",
-              "DocumentIndex": 22,
-              "Title": "CommonConveyorLine.cs",
-              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\ConveyorLine\\CommonConveyorLine.cs",
-              "RelativeDocumentMoniker": "WIDESEAWCS_QuartzJob\\ConveyorLine\\CommonConveyorLine.cs",
-              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\ConveyorLine\\CommonConveyorLine.cs",
-              "RelativeToolTip": "WIDESEAWCS_QuartzJob\\ConveyorLine\\CommonConveyorLine.cs",
-              "ViewState": "AQIAAHQAAAAAAAAAAAAgwIkAAAAYAAAA",
-              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
-              "WhenOpened": "2024-10-25T01:42:20.676Z"
-            },
-            {
-              "$type": "Document",
-              "DocumentIndex": 25,
-              "Title": "QuartzJobHostedService.cs",
-              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\QuartzExtensions\\QuartzJobHostedService.cs",
-              "RelativeDocumentMoniker": "WIDESEAWCS_QuartzJob\\QuartzExtensions\\QuartzJobHostedService.cs",
-              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\QuartzExtensions\\QuartzJobHostedService.cs",
-              "RelativeToolTip": "WIDESEAWCS_QuartzJob\\QuartzExtensions\\QuartzJobHostedService.cs",
-              "ViewState": "AQIAADoAAAAAAAAAAAArwFsAAAA7AAAA",
-              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
-              "WhenOpened": "2024-10-25T01:45:38.017Z"
-            },
-            {
-              "$type": "Document",
-              "DocumentIndex": 27,
-              "Title": "QuartzJobAutofacModuleRegister.cs",
-              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\QuartzExtensions\\QuartzJobAutofacModuleRegister.cs",
-              "RelativeDocumentMoniker": "WIDESEAWCS_QuartzJob\\QuartzExtensions\\QuartzJobAutofacModuleRegister.cs",
-              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\QuartzExtensions\\QuartzJobAutofacModuleRegister.cs",
-              "RelativeToolTip": "WIDESEAWCS_QuartzJob\\QuartzExtensions\\QuartzJobAutofacModuleRegister.cs",
-              "ViewState": "AQIAAAAAAAAAAAAAAAAAAAAAAAAAAAAA",
-              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
-              "WhenOpened": "2024-10-25T01:57:12.258Z"
-            },
-            {
-              "$type": "Document",
-              "DocumentIndex": 26,
-              "Title": "QuartzJobDataTableHostedService.cs",
-              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\QuartzExtensions\\QuartzJobDataTableHostedService.cs",
-              "RelativeDocumentMoniker": "WIDESEAWCS_QuartzJob\\QuartzExtensions\\QuartzJobDataTableHostedService.cs",
-              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\QuartzExtensions\\QuartzJobDataTableHostedService.cs",
-              "RelativeToolTip": "WIDESEAWCS_QuartzJob\\QuartzExtensions\\QuartzJobDataTableHostedService.cs",
-              "ViewState": "AQIAAAAAAAAAAAAAAAAAAAAAAAAAAAAA",
-              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
-              "WhenOpened": "2024-10-25T01:57:12.985Z"
-            },
-            {
-              "$type": "Document",
-              "DocumentIndex": 34,
               "Title": "DeviceCommand.cs",
               "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\DeviceBase\\DeviceCommand.cs",
               "RelativeDocumentMoniker": "WIDESEAWCS_QuartzJob\\DeviceBase\\DeviceCommand.cs",
               "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\DeviceBase\\DeviceCommand.cs",
               "RelativeToolTip": "WIDESEAWCS_QuartzJob\\DeviceBase\\DeviceCommand.cs",
-              "ViewState": "AQIAABkAAAAAAAAAAAAuwPgAAAAFAAAA",
+              "ViewState": "AQIAAK4AAAAAAAAAAAAYwPcAAAAaAAAA",
               "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
-              "WhenOpened": "2024-10-25T01:23:25.685Z"
-            },
-            {
-              "$type": "Document",
-              "DocumentIndex": 28,
-              "Title": "InovanceTcpCommunicator.cs",
-              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Communicator\\Inovance\\InovanceTcpCommunicator.cs",
-              "RelativeDocumentMoniker": "WIDESEAWCS_Communicator\\Inovance\\InovanceTcpCommunicator.cs",
-              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Communicator\\Inovance\\InovanceTcpCommunicator.cs",
-              "RelativeToolTip": "WIDESEAWCS_Communicator\\Inovance\\InovanceTcpCommunicator.cs",
-              "ViewState": "AQIAABQAAAAAAAAAAAAAAMcAAAA+AAAA",
-              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
-              "WhenOpened": "2024-10-25T00:57:10.455Z"
-            },
-            {
-              "$type": "Document",
-              "DocumentIndex": 33,
-              "Title": "ShuttleCar.cs",
-              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\ShuttleCar\\ShuttleCar.cs",
-              "RelativeDocumentMoniker": "WIDESEAWCS_QuartzJob\\ShuttleCar\\ShuttleCar.cs",
-              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\ShuttleCar\\ShuttleCar.cs",
-              "RelativeToolTip": "WIDESEAWCS_QuartzJob\\ShuttleCar\\ShuttleCar.cs",
-              "ViewState": "AQIAAH4AAAAAAAAAAAArwKMAAAANAAAA",
-              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
-              "WhenOpened": "2024-10-25T01:42:49.769Z"
-            },
-            {
-              "$type": "Document",
-              "DocumentIndex": 30,
-              "Title": "CommonStackerCraneJob.cs",
-              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Tasks\\StackerCraneJob\\CommonStackerCraneJob.cs",
-              "RelativeDocumentMoniker": "WIDESEAWCS_Tasks\\StackerCraneJob\\CommonStackerCraneJob.cs",
-              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Tasks\\StackerCraneJob\\CommonStackerCraneJob.cs",
-              "RelativeToolTip": "WIDESEAWCS_Tasks\\StackerCraneJob\\CommonStackerCraneJob.cs",
-              "ViewState": "AQIAABIAAAAAAAAAAAAAAC8AAAAiAAAA",
-              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
-              "WhenOpened": "2024-10-25T01:46:27.984Z"
-            },
-            {
-              "$type": "Document",
-              "DocumentIndex": 31,
-              "Title": "WIDESEAWCS_Server.csproj",
-              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj",
-              "RelativeDocumentMoniker": "WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj",
-              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj",
-              "RelativeToolTip": "WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj",
-              "ViewState": "AQIAAAAAAAAAAAAAAAAAAAgAAAAnAAAA",
-              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000758|",
-              "WhenOpened": "2024-10-23T02:33:53.566Z",
+              "WhenOpened": "2024-10-29T03:05:32.353Z",
               "EditorCaption": ""
             },
             {
               "$type": "Document",
-              "DocumentIndex": 35,
-              "Title": "index.html",
-              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Server\\index.html",
-              "RelativeDocumentMoniker": "WIDESEAWCS_Server\\index.html",
-              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Server\\index.html",
-              "RelativeToolTip": "WIDESEAWCS_Server\\index.html",
-              "ViewState": "AQIAAGYAAAAAAAAAAAAAALQAAAAQAAAA",
-              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.001512|",
-              "WhenOpened": "2024-10-22T01:18:53.662Z"
+              "DocumentIndex": 22,
+              "Title": "ConveyorLineTaskCommand.cs",
+              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Tasks\\ConveyorLineJob\\ConveyorLineTaskCommand.cs",
+              "RelativeDocumentMoniker": "WIDESEAWCS_Tasks\\ConveyorLineJob\\ConveyorLineTaskCommand.cs",
+              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Tasks\\ConveyorLineJob\\ConveyorLineTaskCommand.cs",
+              "RelativeToolTip": "WIDESEAWCS_Tasks\\ConveyorLineJob\\ConveyorLineTaskCommand.cs",
+              "ViewState": "AQIAAAAAAAAAAAAAAAAAABoAAAA4AAAA",
+              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+              "WhenOpened": "2024-10-29T03:05:29.571Z",
+              "EditorCaption": ""
             },
             {
               "$type": "Document",
-              "DocumentIndex": 36,
-              "Title": "AuthorizationSetup.cs",
-              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Core\\Authorization\\AuthorizationSetup.cs",
-              "RelativeDocumentMoniker": "WIDESEAWCS_Core\\Authorization\\AuthorizationSetup.cs",
-              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Core\\Authorization\\AuthorizationSetup.cs",
-              "RelativeToolTip": "WIDESEAWCS_Core\\Authorization\\AuthorizationSetup.cs",
-              "ViewState": "AQIAABAAAAAAAAAAAAAWwBsAAAAwAAAA",
+              "DocumentIndex": 21,
+              "Title": "ModbusCustomModel.cs",
+              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Communicator\\CustomModel\\ModbusCustomModel.cs",
+              "RelativeDocumentMoniker": "WIDESEAWCS_Communicator\\CustomModel\\ModbusCustomModel.cs",
+              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Communicator\\CustomModel\\ModbusCustomModel.cs",
+              "RelativeToolTip": "WIDESEAWCS_Communicator\\CustomModel\\ModbusCustomModel.cs",
+              "ViewState": "AQIAABAAAAAAAAAAAAAYwBoAAAAIAAAA",
               "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
-              "WhenOpened": "2024-10-22T01:09:46.313Z"
+              "WhenOpened": "2024-10-29T03:04:51.117Z",
+              "EditorCaption": ""
             },
             {
               "$type": "Document",
-              "DocumentIndex": 37,
-              "Title": "SwaggerMiddleware.cs",
-              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Core\\Middlewares\\SwaggerMiddleware.cs",
-              "RelativeDocumentMoniker": "WIDESEAWCS_Core\\Middlewares\\SwaggerMiddleware.cs",
-              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Core\\Middlewares\\SwaggerMiddleware.cs",
-              "RelativeToolTip": "WIDESEAWCS_Core\\Middlewares\\SwaggerMiddleware.cs",
-              "ViewState": "AQIAAAAAAAAAAAAAAAAAAAAAAAAAAAAA",
+              "DocumentIndex": 20,
+              "Title": "MelsecCustomModel.cs",
+              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Communicator\\CustomModel\\MelsecCustomModel.cs",
+              "RelativeDocumentMoniker": "WIDESEAWCS_Communicator\\CustomModel\\MelsecCustomModel.cs",
+              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Communicator\\CustomModel\\MelsecCustomModel.cs",
+              "RelativeToolTip": "WIDESEAWCS_Communicator\\CustomModel\\MelsecCustomModel.cs",
+              "ViewState": "AQIAAAAAAAAAAAAAAAAAAFEAAAAIAAAA",
               "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
-              "WhenOpened": "2024-10-22T01:09:28.175Z",
+              "WhenOpened": "2024-10-29T03:03:23.075Z",
+              "EditorCaption": ""
+            },
+            {
+              "$type": "Document",
+              "DocumentIndex": 19,
+              "Title": "SiemensCustomModel.cs",
+              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Communicator\\CustomModel\\SiemensCustomModel.cs",
+              "RelativeDocumentMoniker": "WIDESEAWCS_Communicator\\CustomModel\\SiemensCustomModel.cs",
+              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Communicator\\CustomModel\\SiemensCustomModel.cs",
+              "RelativeToolTip": "WIDESEAWCS_Communicator\\CustomModel\\SiemensCustomModel.cs",
+              "ViewState": "AQIAAAsAAAAA3JKSmhIewD8AAAAIAAAA",
+              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+              "WhenOpened": "2024-10-29T03:02:08.422Z",
+              "EditorCaption": ""
+            },
+            {
+              "$type": "Document",
+              "DocumentIndex": 18,
+              "Title": "TaskService.cs",
+              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_TaskInfoService\\TaskService.cs",
+              "RelativeDocumentMoniker": "WIDESEAWCS_TaskInfoService\\TaskService.cs",
+              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_TaskInfoService\\TaskService.cs",
+              "RelativeToolTip": "WIDESEAWCS_TaskInfoService\\TaskService.cs",
+              "ViewState": "AQIAADMAAAAAAAAAAAAUwE0CAAAAAAAA",
+              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+              "WhenOpened": "2024-10-29T02:59:00.959Z",
+              "EditorCaption": ""
+            },
+            {
+              "$type": "Document",
+              "DocumentIndex": 25,
+              "Title": "TaskExecuteDetailService.cs",
+              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_TaskInfoService\\TaskExecuteDetailService.cs",
+              "RelativeDocumentMoniker": "WIDESEAWCS_TaskInfoService\\TaskExecuteDetailService.cs",
+              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_TaskInfoService\\TaskExecuteDetailService.cs",
+              "RelativeToolTip": "WIDESEAWCS_TaskInfoService\\TaskExecuteDetailService.cs",
+              "ViewState": "AQIAADoAAAAAAAAAAAAIwFIAAABVAAAA",
+              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+              "WhenOpened": "2024-10-29T02:59:00.255Z",
               "EditorCaption": ""
             }
           ]
diff --git a/WIDESEAWCS_Server/WIDESEAWCS_Communicator/CustomModel/DataLengthAttribute.cs b/WIDESEAWCS_Server/WIDESEAWCS_Communicator/CustomModel/DataLengthAttribute.cs
new file mode 100644
index 0000000..31978f1
--- /dev/null
+++ b/WIDESEAWCS_Server/WIDESEAWCS_Communicator/CustomModel/DataLengthAttribute.cs
@@ -0,0 +1,20 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace WIDESEAWCS_Communicator
+{
+    [AttributeUsage(AttributeTargets.Property)]
+    public class DataLengthAttribute : Attribute
+    {
+        public DataLengthAttribute(ushort dataLength)
+        {
+            DataLength = dataLength;
+        }
+
+        public ushort DataLength { get; set; }
+    }
+
+}
diff --git a/WIDESEAWCS_Server/WIDESEAWCS_Communicator/CustomModel/MelsecCustomModel.cs b/WIDESEAWCS_Server/WIDESEAWCS_Communicator/CustomModel/MelsecCustomModel.cs
new file mode 100644
index 0000000..7f920c6
--- /dev/null
+++ b/WIDESEAWCS_Server/WIDESEAWCS_Communicator/CustomModel/MelsecCustomModel.cs
@@ -0,0 +1,219 @@
+锘縰sing HslCommunication;
+using HslCommunication.Core;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Reflection;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace WIDESEAWCS_Communicator
+{
+    public class MelsecCustomModel
+    {
+        #region <Const>
+        #endregion <Const>
+
+        #region <Private Member>
+        public ushort ReadCount { get; }
+
+        private IByteTransform byteTransform = new RegularByteTransform();
+        #endregion <Private Member>
+
+        #region <Public Menber>
+
+        #endregion <Public Menber>
+
+        #region <Constructor function>
+        public MelsecCustomModel()
+        {
+            ushort readCount = 0;
+            PropertyInfo[] propertyInfos = GetType().GetProperties().Where(x => x.CanWrite).ToArray();
+            foreach (PropertyInfo propertyInfo in propertyInfos)
+            {
+                object? obj = propertyInfo.GetValue(this);
+                TypeCode typeCode = Type.GetTypeCode(propertyInfo.PropertyType);
+                switch (typeCode)
+                {
+                    case TypeCode.Byte:
+                    case TypeCode.SByte:
+                    case TypeCode.Char:
+                        readCount += sizeof(byte);
+                        break;
+                    case TypeCode.Int16:
+                    case TypeCode.UInt16:
+                        readCount += 2;
+                        break;
+                    case TypeCode.Single:
+                    case TypeCode.Int32:
+                    case TypeCode.UInt32:
+                        readCount += 4;
+                        break;
+                    case TypeCode.String:
+                        ushort dataLength = CheckStringAttribute(propertyInfo);
+                        readCount += dataLength;
+                        break;
+                    default:
+                        throw new NotSupportedException("涓嶆敮鎸佺殑鍩虹绫诲瀷: " + propertyInfo.PropertyType);
+                }
+            }
+            ReadCount = readCount;
+        }
+        #endregion <Constructor function>
+
+        #region <Private Method>
+        private ushort CheckStringAttribute(PropertyInfo propertyInfo)
+        {
+            Attribute? attribute = propertyInfo.GetCustomAttribute(typeof(DataLengthAttribute));
+            if (attribute == null)
+            {
+                throw new Exception($"瀛楃涓查渶瑕侀厤缃�怐ataLength銆戠壒鎬�");
+            }
+            ushort dataLength = ((DataLengthAttribute)attribute).DataLength;
+            if (dataLength <= 0 || dataLength > 256)
+            {
+                throw new Exception($"銆怐ataLength銆戠壒鎬ц閰嶇疆鏈夋晥鍙傛暟,鍙傛暟鑼冨洿銆�1-256銆�");
+            }
+
+            return dataLength;
+        }
+        #endregion <Private Method>
+
+        #region <Public Method>
+        public void ParseSource(byte[] Content)
+        {
+            PropertyInfo[] propertyInfos = GetType().GetProperties().Where(x => x.CanWrite).ToArray();
+            int index = 0;
+            for (int i = 0; i < propertyInfos.Length; i++)
+            {
+                PropertyInfo propertyInfo = propertyInfos[i];
+
+                TypeCode typeCode = Type.GetTypeCode(propertyInfo.PropertyType);
+                switch (typeCode)
+                {
+                    case TypeCode.Byte:
+                    case TypeCode.SByte:
+                        propertyInfo.SetValue(this, Content[index]);
+                        index += sizeof(byte);
+                        break;
+                    case TypeCode.Char:
+                        propertyInfo.SetValue(this, (char)Content[index]);
+                        index += sizeof(char);
+                        break;
+                    case TypeCode.Int16:
+                        propertyInfo.SetValue(this, byteTransform.TransInt16(Content, index));
+                        index += sizeof(short);
+                        break;
+                    case TypeCode.UInt16:
+                        propertyInfo.SetValue(this, byteTransform.TransUInt16(Content, index));
+                        index += sizeof(ushort);
+                        break;
+                    case TypeCode.Single:
+                        propertyInfo.SetValue(this, byteTransform.TransSingle(Content, index));
+                        index += sizeof(float);
+                        break;
+                    case TypeCode.Int32:
+                        propertyInfo.SetValue(this, byteTransform.TransInt32(Content, index));
+                        index += sizeof(int);
+                        break;
+                    case TypeCode.UInt32:
+                        propertyInfo.SetValue(this, byteTransform.TransUInt32(Content, index));
+                        index += sizeof(uint);
+                        break;
+                    case TypeCode.String:
+                        ushort dataLength = CheckStringAttribute(propertyInfo);
+                        propertyInfo.SetValue(this, byteTransform.TransString(Content.SelectMiddle(index, dataLength), Encoding.Default));
+                        index += dataLength;
+                        break;
+                    default:
+                        throw new NotSupportedException("涓嶆敮鎸佺殑鍩虹绫诲瀷: " + propertyInfo.PropertyType);
+                }
+            }
+        }
+
+        public byte[] ToSource()
+        {
+            int propertyValueHasNull = -1;
+            List<byte> bytes = new List<byte>();
+            PropertyInfo[] propertyInfos = GetType().GetProperties().Where(x => x.CanWrite).ToArray();
+            foreach (PropertyInfo propertyInfo in propertyInfos)
+            {
+                object? obj = propertyInfo.GetValue(this);
+                if (obj == null && propertyValueHasNull != -1)
+                {
+                    throw new Exception($"{GetType().Name}閿欒");
+                }
+                else
+                {
+                    if (propertyValueHasNull == -1)
+                        propertyValueHasNull = 2;
+                }
+                TypeCode typeCode = Type.GetTypeCode(propertyInfo.PropertyType);
+                switch (typeCode)
+                {
+                    case TypeCode.Byte:
+                    case TypeCode.SByte:
+                    case TypeCode.Char:
+                        if (obj != null)
+                        {
+                            bytes.Add((byte)obj);
+                        }
+                        else
+                        { propertyValueHasNull = 1; }
+                        break;
+                    case TypeCode.Int16:
+                    case TypeCode.UInt16:
+                        if (obj != null)
+                        {
+                            byte[] bytesShort = BitConverter.GetBytes(Convert.ToUInt16(obj));
+                            Array.Reverse(bytesShort);
+                            bytes.AddRange(bytesShort);
+                        }
+                        else
+                        { propertyValueHasNull = 1; }
+                        break;
+                    case TypeCode.Single:
+                        if (obj != null)
+                        {
+                            byte[] bytesSingle = BitConverter.GetBytes(Convert.ToSingle(obj));
+                            Array.Reverse(bytesSingle);
+                            bytes.AddRange(bytesSingle);
+                        }
+                        else
+                        { propertyValueHasNull = 1; }
+                        break;
+                    case TypeCode.Int32:
+                    case TypeCode.UInt32:
+                        if (obj != null)
+                        {
+                            byte[] bytesInt = BitConverter.GetBytes(Convert.ToUInt32(obj));
+                            Array.Reverse(bytesInt);
+                            bytes.AddRange(bytesInt);
+                        }
+                        else
+                        { propertyValueHasNull = 1; }
+                        break;
+                    case TypeCode.String:
+
+                        if (obj != null)
+                        {
+                            ushort dataLength = CheckStringAttribute(propertyInfo);
+                            byte[] bytesString = byteTransform.TransByte(obj.ToString(), Encoding.Default);
+                            bytes.AddRange(bytesString);
+                        }
+                        else
+                        { propertyValueHasNull = 1; }
+                        break;
+                    default:
+                        throw new NotSupportedException("涓嶆敮鎸佺殑鍩虹绫诲瀷: " + propertyInfo.PropertyType);
+                }
+            }
+
+            return bytes.ToArray();
+        }
+        #endregion <Public Method>
+
+        #region <Event>
+        #endregion <Event>
+    }
+}
diff --git a/WIDESEAWCS_Server/WIDESEAWCS_Communicator/CustomModel/ModbusCustomModel.cs b/WIDESEAWCS_Server/WIDESEAWCS_Communicator/CustomModel/ModbusCustomModel.cs
new file mode 100644
index 0000000..8f872a3
--- /dev/null
+++ b/WIDESEAWCS_Server/WIDESEAWCS_Communicator/CustomModel/ModbusCustomModel.cs
@@ -0,0 +1,219 @@
+锘縰sing HslCommunication.Core;
+using HslCommunication;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Reflection;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace WIDESEAWCS_Communicator
+{
+    public class ModbusCustomModel
+    {
+        #region <Const>
+        #endregion <Const>
+
+        #region <Private Member>
+        public ushort ReadCount { get; }
+
+        private IByteTransform byteTransform = new ReverseWordTransform();
+        #endregion <Private Member>
+
+        #region <Public Menber>
+
+        #endregion <Public Menber>
+
+        #region <Constructor function>
+        public ModbusCustomModel()
+        {
+            ushort readCount = 0;
+            PropertyInfo[] propertyInfos = GetType().GetProperties().Where(x => x.CanWrite).ToArray();
+            foreach (PropertyInfo propertyInfo in propertyInfos)
+            {
+                object? obj = propertyInfo.GetValue(this);
+                TypeCode typeCode = Type.GetTypeCode(propertyInfo.PropertyType);
+                switch (typeCode)
+                {
+                    case TypeCode.Byte:
+                    case TypeCode.SByte:
+                    case TypeCode.Char:
+                        readCount += sizeof(byte);
+                        break;
+                    case TypeCode.Int16:
+                    case TypeCode.UInt16:
+                        readCount += 2;
+                        break;
+                    case TypeCode.Single:
+                    case TypeCode.Int32:
+                    case TypeCode.UInt32:
+                        readCount += 4;
+                        break;
+                    case TypeCode.String:
+                        ushort dataLength = CheckStringAttribute(propertyInfo);
+                        readCount += dataLength;
+                        break;
+                    default:
+                        throw new NotSupportedException("涓嶆敮鎸佺殑鍩虹绫诲瀷: " + propertyInfo.PropertyType);
+                }
+            }
+            ReadCount = readCount;
+        }
+        #endregion <Constructor function>
+
+        #region <Private Method>
+        private ushort CheckStringAttribute(PropertyInfo propertyInfo)
+        {
+            Attribute? attribute = propertyInfo.GetCustomAttribute(typeof(DataLengthAttribute));
+            if (attribute == null)
+            {
+                throw new Exception($"瀛楃涓查渶瑕侀厤缃�怐ataLength銆戠壒鎬�");
+            }
+            ushort dataLength = ((DataLengthAttribute)attribute).DataLength;
+            if (dataLength <= 0 || dataLength > 256)
+            {
+                throw new Exception($"銆怐ataLength銆戠壒鎬ц閰嶇疆鏈夋晥鍙傛暟,鍙傛暟鑼冨洿銆�1-256銆�");
+            }
+
+            return dataLength;
+        }
+        #endregion <Private Method>
+
+        #region <Public Method>
+        public void ParseSource(byte[] Content)
+        {
+            PropertyInfo[] propertyInfos = GetType().GetProperties().Where(x => x.CanWrite).ToArray();
+            int index = 0;
+            for (int i = 0; i < propertyInfos.Length; i++)
+            {
+                PropertyInfo propertyInfo = propertyInfos[i];
+
+                TypeCode typeCode = Type.GetTypeCode(propertyInfo.PropertyType);
+                switch (typeCode)
+                {
+                    case TypeCode.Byte:
+                    case TypeCode.SByte:
+                        propertyInfo.SetValue(this, Content[index]);
+                        index += sizeof(byte);
+                        break;
+                    case TypeCode.Char:
+                        propertyInfo.SetValue(this, (char)Content[index]);
+                        index += sizeof(char);
+                        break;
+                    case TypeCode.Int16:
+                        propertyInfo.SetValue(this, byteTransform.TransInt16(Content, index));
+                        index += sizeof(short);
+                        break;
+                    case TypeCode.UInt16:
+                        propertyInfo.SetValue(this, byteTransform.TransUInt16(Content, index));
+                        index += sizeof(ushort);
+                        break;
+                    case TypeCode.Single:
+                        propertyInfo.SetValue(this, byteTransform.TransSingle(Content, index));
+                        index += sizeof(float);
+                        break;
+                    case TypeCode.Int32:
+                        propertyInfo.SetValue(this, byteTransform.TransInt32(Content, index));
+                        index += sizeof(int);
+                        break;
+                    case TypeCode.UInt32:
+                        propertyInfo.SetValue(this, byteTransform.TransUInt32(Content, index));
+                        index += sizeof(uint);
+                        break;
+                    case TypeCode.String:
+                        ushort dataLength = CheckStringAttribute(propertyInfo);
+                        propertyInfo.SetValue(this, byteTransform.TransString(Content.SelectMiddle(index, dataLength), Encoding.Default));
+                        index += dataLength;
+                        break;
+                    default:
+                        throw new NotSupportedException("涓嶆敮鎸佺殑鍩虹绫诲瀷: " + propertyInfo.PropertyType);
+                }
+            }
+        }
+
+        public byte[] ToSource()
+        {
+            int propertyValueHasNull = -1;
+            List<byte> bytes = new List<byte>();
+            PropertyInfo[] propertyInfos = GetType().GetProperties().Where(x => x.CanWrite).ToArray();
+            foreach (PropertyInfo propertyInfo in propertyInfos)
+            {
+                object? obj = propertyInfo.GetValue(this);
+                if (obj == null && propertyValueHasNull != -1)
+                {
+                    throw new Exception($"{GetType().Name}閿欒");
+                }
+                else
+                {
+                    if (propertyValueHasNull == -1)
+                        propertyValueHasNull = 2;
+                }
+                TypeCode typeCode = Type.GetTypeCode(propertyInfo.PropertyType);
+                switch (typeCode)
+                {
+                    case TypeCode.Byte:
+                    case TypeCode.SByte:
+                    case TypeCode.Char:
+                        if (obj != null)
+                        {
+                            bytes.Add((byte)obj);
+                        }
+                        else
+                        { propertyValueHasNull = 1; }
+                        break;
+                    case TypeCode.Int16:
+                    case TypeCode.UInt16:
+                        if (obj != null)
+                        {
+                            byte[] bytesShort = BitConverter.GetBytes(Convert.ToUInt16(obj));
+                            Array.Reverse(bytesShort);
+                            bytes.AddRange(bytesShort);
+                        }
+                        else
+                        { propertyValueHasNull = 1; }
+                        break;
+                    case TypeCode.Single:
+                        if (obj != null)
+                        {
+                            byte[] bytesSingle = BitConverter.GetBytes(Convert.ToSingle(obj));
+                            Array.Reverse(bytesSingle);
+                            bytes.AddRange(bytesSingle);
+                        }
+                        else
+                        { propertyValueHasNull = 1; }
+                        break;
+                    case TypeCode.Int32:
+                    case TypeCode.UInt32:
+                        if (obj != null)
+                        {
+                            byte[] bytesInt = BitConverter.GetBytes(Convert.ToUInt32(obj));
+                            Array.Reverse(bytesInt);
+                            bytes.AddRange(bytesInt);
+                        }
+                        else
+                        { propertyValueHasNull = 1; }
+                        break;
+                    case TypeCode.String:
+
+                        if (obj != null)
+                        {
+                            ushort dataLength = CheckStringAttribute(propertyInfo);
+                            byte[] bytesString = byteTransform.TransByte(obj.ToString(), Encoding.Default);
+                            bytes.AddRange(bytesString);
+                        }
+                        else
+                        { propertyValueHasNull = 1; }
+                        break;
+                    default:
+                        throw new NotSupportedException("涓嶆敮鎸佺殑鍩虹绫诲瀷: " + propertyInfo.PropertyType);
+                }
+            }
+
+            return bytes.ToArray();
+        }
+        #endregion <Public Method>
+
+        #region <Event>
+        #endregion <Event>
+    }
+}
diff --git a/WIDESEAWCS_Server/WIDESEAWCS_Communicator/CustomModel/SiemensCustomModel.cs b/WIDESEAWCS_Server/WIDESEAWCS_Communicator/CustomModel/SiemensCustomModel.cs
new file mode 100644
index 0000000..0fc1409
--- /dev/null
+++ b/WIDESEAWCS_Server/WIDESEAWCS_Communicator/CustomModel/SiemensCustomModel.cs
@@ -0,0 +1,230 @@
+锘縰sing HslCommunication;
+using HslCommunication.Core;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Reflection;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace WIDESEAWCS_Communicator
+{
+    public class SiemensCustomModel : IDataTransfer
+    {
+        #region <Const>
+        #endregion <Const>
+
+        #region <Private Member>
+        public ushort ReadCount { get; }
+
+        private IByteTransform byteTransform = new ReverseBytesTransform();
+        #endregion <Private Member>
+
+        #region <Public Menber>
+
+        #endregion <Public Menber>
+
+        #region <Constructor function>
+        public SiemensCustomModel()
+        {
+            ushort readCount = 0;
+            PropertyInfo[] propertyInfos = GetType().GetProperties().Where(x => x.CanWrite).ToArray();
+            foreach (PropertyInfo propertyInfo in propertyInfos)
+            {
+                object? obj = propertyInfo.GetValue(this);
+                TypeCode typeCode = Type.GetTypeCode(propertyInfo.PropertyType);
+                switch (typeCode)
+                {
+                    case TypeCode.Byte:
+                    case TypeCode.SByte:
+                    case TypeCode.Char:
+                        readCount += sizeof(byte);
+                        break;
+                    case TypeCode.Int16:
+                    case TypeCode.UInt16:
+                        readCount += 2;
+                        break;
+                    case TypeCode.Single:
+                    case TypeCode.Int32:
+                    case TypeCode.UInt32:
+                        readCount += 4;
+                        break;
+                    case TypeCode.String:
+                        ushort dataLength = CheckStringAttribute(propertyInfo);
+                        readCount += dataLength;
+                        break;
+                    default:
+                        throw new NotSupportedException("涓嶆敮鎸佺殑鍩虹绫诲瀷: " + propertyInfo.PropertyType);
+                }
+            }
+            ReadCount = readCount;
+        }
+        #endregion <Constructor function>
+
+        #region <Private Method>
+        private ushort CheckStringAttribute(PropertyInfo propertyInfo)
+        {
+            Attribute? attribute = propertyInfo.GetCustomAttribute(typeof(DataLengthAttribute));
+            if (attribute == null)
+            {
+                throw new Exception($"瀛楃涓查渶瑕侀厤缃�怐ataLength銆戠壒鎬�");
+            }
+            ushort dataLength = ((DataLengthAttribute)attribute).DataLength;
+            if (dataLength <= 0 || dataLength > 256)
+            {
+                throw new Exception($"銆怐ataLength銆戠壒鎬ц閰嶇疆鏈夋晥鍙傛暟,鍙傛暟鑼冨洿銆�1-256銆�");
+            }
+            if (dataLength % 2 != 0)
+            {
+                dataLength += 1;
+            }
+            dataLength += 2;
+
+            return dataLength;
+        }
+        #endregion <Private Method>
+
+        #region <Public Method>
+        public void ParseSource(byte[] Content)
+        {
+            PropertyInfo[] propertyInfos = GetType().GetProperties().Where(x => x.CanWrite).ToArray();
+            int index = 0;
+            for (int i = 0; i < propertyInfos.Length; i++)
+            {
+                PropertyInfo propertyInfo = propertyInfos[i];
+
+                TypeCode typeCode = Type.GetTypeCode(propertyInfo.PropertyType);
+                switch (typeCode)
+                {
+                    case TypeCode.Byte:
+                    case TypeCode.SByte:
+                        propertyInfo.SetValue(this, Content[index]);
+                        index += sizeof(byte);
+                        break;
+                    case TypeCode.Char:
+                        propertyInfo.SetValue(this, (char)Content[index]);
+                        index += sizeof(char);
+                        break;
+                    case TypeCode.Int16:
+                        propertyInfo.SetValue(this, byteTransform.TransInt16(Content, index));
+                        index += sizeof(short);
+                        break;
+                    case TypeCode.UInt16:
+                        propertyInfo.SetValue(this, byteTransform.TransUInt16(Content, index));
+                        index += sizeof(ushort);
+                        break;
+                    case TypeCode.Single:
+                        propertyInfo.SetValue(this, byteTransform.TransSingle(Content, index));
+                        index += sizeof(float);
+                        break;
+                    case TypeCode.Int32:
+                        propertyInfo.SetValue(this, byteTransform.TransInt32(Content, index));
+                        index += sizeof(int);
+                        break;
+                    case TypeCode.UInt32:
+                        propertyInfo.SetValue(this, byteTransform.TransUInt32(Content, index));
+                        index += sizeof(uint);
+                        break;
+                    case TypeCode.String:
+                        ushort dataLength = CheckStringAttribute(propertyInfo);
+                        propertyInfo.SetValue(this, Encoding.Default.GetString(Content, index + 2, Content[index + 1]));
+                        index += dataLength;
+                        break;
+                    default:
+                        throw new NotSupportedException("涓嶆敮鎸佺殑鍩虹绫诲瀷: " + propertyInfo.PropertyType);
+                }
+            }
+        }
+
+        public byte[] ToSource()
+        {
+            int propertyValueHasNull = -1;
+            List<byte> bytes = new List<byte>();
+            PropertyInfo[] propertyInfos = GetType().GetProperties().Where(x => x.CanWrite).ToArray();
+            foreach (PropertyInfo propertyInfo in propertyInfos)
+            {
+                object? obj = propertyInfo.GetValue(this);
+                if (obj == null && propertyValueHasNull != -1)
+                {
+                    throw new Exception($"{GetType().Name}閿欒");
+                }
+                else
+                {
+                    if (propertyValueHasNull == -1)
+                        propertyValueHasNull = 2;
+                }
+                TypeCode typeCode = Type.GetTypeCode(propertyInfo.PropertyType);
+                switch (typeCode)
+                {
+                    case TypeCode.Byte:
+                    case TypeCode.SByte:
+                    case TypeCode.Char:
+                        if (obj != null)
+                        {
+                            bytes.Add((byte)obj);
+                        }
+                        else
+                        { propertyValueHasNull = 1; }
+                        break;
+                    case TypeCode.Int16:
+                    case TypeCode.UInt16:
+                        if (obj != null)
+                        {
+                            byte[] bytesShort = BitConverter.GetBytes(Convert.ToUInt16(obj));
+                            Array.Reverse(bytesShort);
+                            bytes.AddRange(bytesShort);
+                        }
+                        else
+                        { propertyValueHasNull = 1; }
+                        break;
+                    case TypeCode.Single:
+                        if (obj != null)
+                        {
+                            byte[] bytesSingle = BitConverter.GetBytes(Convert.ToSingle(obj));
+                            Array.Reverse(bytesSingle);
+                            bytes.AddRange(bytesSingle);
+                        }
+                        else
+                        { propertyValueHasNull = 1; }
+                        break;
+                    case TypeCode.Int32:
+                    case TypeCode.UInt32:
+                        if (obj != null)
+                        {
+                            byte[] bytesInt = BitConverter.GetBytes(Convert.ToUInt32(obj));
+                            Array.Reverse(bytesInt);
+                            bytes.AddRange(bytesInt);
+                        }
+                        else
+                        { propertyValueHasNull = 1; }
+                        break;
+                    case TypeCode.String:
+
+                        if (obj != null)
+                        {
+                            ushort dataLength = CheckStringAttribute(propertyInfo);
+                            byte[] bytesString = Encoding.Default.GetBytes(obj.ToString());
+                            bytes.Add(Convert.ToByte(dataLength));
+                            bytes.Add(Convert.ToByte(obj.ToString().Length));
+                            bytes.AddRange(bytesString);
+                            for (int i = 0; i < dataLength - obj.ToString().Length - 2; i++)
+                            {
+                                bytes.Add(0);
+                            }
+                        }
+                        else
+                        { propertyValueHasNull = 1; }
+                        break;
+                    default:
+                        throw new NotSupportedException("涓嶆敮鎸佺殑鍩虹绫诲瀷: " + propertyInfo.PropertyType);
+                }
+            }
+
+            return bytes.ToArray();
+        }
+        #endregion <Public Method>
+
+        #region <Event>
+        #endregion <Event>
+    }
+}
diff --git a/WIDESEAWCS_Server/WIDESEAWCS_Core/AOP/CacheAOP.cs b/WIDESEAWCS_Server/WIDESEAWCS_Core/AOP/CacheAOP.cs
new file mode 100644
index 0000000..cd8c28e
--- /dev/null
+++ b/WIDESEAWCS_Server/WIDESEAWCS_Core/AOP/CacheAOP.cs
@@ -0,0 +1,150 @@
+锘縰sing Castle.DynamicProxy;
+using Newtonsoft.Json;
+using SqlSugar;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Linq.Expressions;
+using System.Text;
+using System.Threading.Tasks;
+using WIDESEAWCS_Core.Attributes;
+using WIDESEAWCS_Core.Caches;
+using WIDESEAWCS_Core.Helper;
+using ICacheService = WIDESEAWCS_Core.Caches.ICacheService;
+
+namespace WIDESEAWCS_Core.AOP
+{
+    public class CacheAOP : IInterceptor
+    {
+        private readonly ICacheService _cacheService;
+        public CacheAOP(ICacheService cacheService)
+        {
+            _cacheService = cacheService;
+        }
+
+        public void Intercept(IInvocation invocation)
+        {
+            var method = invocation.MethodInvocationTarget ?? invocation.Method;
+
+            var cacheAttribute = method.GetCustomAttributes(true).FirstOrDefault(x => x.GetType() == typeof(CacheAttribute));
+            if (cacheAttribute is CacheAttribute qCachingAttribute)
+            {
+                //鑾峰彇鑷畾涔夌紦瀛橀敭
+                var cacheKey = CustomCacheKey(invocation);
+                if (_cacheService.Exists(cacheKey))
+                {
+                    //灏嗗綋鍓嶈幏鍙栧埌鐨勭紦瀛樺�硷紝璧嬪�肩粰褰撳墠鎵ц鏂规硶
+                    Type returnType;
+                    if (typeof(Task).IsAssignableFrom(method.ReturnType))
+                    {
+                        returnType = method.ReturnType.GenericTypeArguments.FirstOrDefault();
+                    }
+                    else
+                    {
+                        returnType = method.ReturnType;
+                    }
+
+                    //鏍规嵁key鑾峰彇鐩稿簲鐨勭紦瀛樺��
+                    dynamic? cacheValue = _cacheService.Get(returnType, cacheKey);
+                    if (cacheValue != null)
+                        invocation.ReturnValue = (typeof(Task).IsAssignableFrom(method.ReturnType)) ? Task.FromResult(cacheValue) : cacheValue;
+                    return;
+                }
+
+                //鍘绘墽琛屽綋鍓嶇殑鏂规硶
+                invocation.Proceed();
+                //瀛樺叆缂撳瓨
+                if (!string.IsNullOrWhiteSpace(cacheKey))
+                {
+                    object response;
+
+                    //Type type = invocation.ReturnValue?.GetType();
+                    var type = invocation.Method.ReturnType;
+                    if (typeof(Task).IsAssignableFrom(type))
+                    {
+                        dynamic result = invocation.ReturnValue;
+                        response = result.Result;
+                    }
+                    else
+                    {
+                        response = invocation.ReturnValue;
+                    }
+
+                    if (response == null) response = string.Empty;
+
+                    _cacheService.AddOrUpdate(cacheKey, response.Serialize(), qCachingAttribute.AbsoluteExpiration * 60);
+                }
+            }
+            else
+            {
+                invocation.Proceed(); //鐩存帴鎵ц琚嫤鎴柟娉�
+            }
+        }
+
+        /// <summary>
+        /// 鑷畾涔夌紦瀛樼殑key
+        /// </summary>
+        /// <param name="invocation"></param>
+        /// <returns></returns>
+        protected string CustomCacheKey(IInvocation invocation)
+        {
+            var typeName = invocation.TargetType.Name;
+            var methodName = invocation.Method.Name;
+            var methodArguments = invocation.Arguments.Select(GetArgumentValue).Take(3).ToList();//鑾峰彇鍙傛暟鍒楄〃锛屾渶澶氫笁涓�
+
+            string key = $"{typeName}:{methodName}:";
+            foreach (var param in methodArguments)
+            {
+                key = $"{key}{param}:";
+            }
+
+            return key.TrimEnd(':');
+        }
+
+        /// <summary>
+        /// object 杞� string
+        /// </summary>
+        /// <param name="arg"></param>
+        /// <returns></returns>
+        protected static string GetArgumentValue(object arg)
+        {
+            if (arg is DateTime)
+                return ((DateTime)arg).ToString("yyyyMMddHHmmss");
+
+            if (!arg.IsNotEmptyOrNull())
+                return arg.ObjToString();
+
+            if (arg != null)
+            {
+                if (arg is Expression)
+                {
+                    var obj = arg as Expression;
+                    var result = Resolve(obj);
+                    return MD5Helper.MD5Encrypt16(result);
+                }
+                else if (arg.GetType().IsClass)
+                {
+                    return MD5Helper.MD5Encrypt16(JsonConvert.SerializeObject(arg));
+                }
+
+                return $"value:{arg.ObjToString()}";
+            }
+            return string.Empty;
+        }
+
+        private static string Resolve(Expression expression)
+        {
+            ExpressionContext expContext = new ExpressionContext();
+            expContext.Resolve(expression, ResolveExpressType.WhereSingle);
+            var value = expContext.Result.GetString();
+            var pars = expContext.Parameters;
+
+            pars.ForEach(s =>
+            {
+                value = value.Replace(s.ParameterName, s.Value.ObjToString());
+            });
+
+            return value;
+        }
+    }
+}
diff --git a/WIDESEAWCS_Server/WIDESEAWCS_Core/AOP/SqlSugarAop.cs b/WIDESEAWCS_Server/WIDESEAWCS_Core/AOP/SqlSugarAop.cs
index 7382007..70879ee 100644
--- a/WIDESEAWCS_Server/WIDESEAWCS_Core/AOP/SqlSugarAop.cs
+++ b/WIDESEAWCS_Server/WIDESEAWCS_Core/AOP/SqlSugarAop.cs
@@ -72,29 +72,7 @@
                             break;
                     }
                 }
-                
             }
-        }
-
-        private static string GetWholeSql(SugarParameter[] paramArr, string sql)
-        {
-            foreach (var param in paramArr)
-            {
-                sql = sql.Replace(param.ParameterName, $@"'{param.Value.ObjToString()}'");
-            }
-
-            return sql;
-        }
-
-        private static string GetParas(SugarParameter[] pars)
-        {
-            string key = "銆怱QL鍙傛暟銆戯細";
-            foreach (var param in pars)
-            {
-                key += $"{param.ParameterName}:{param.Value}\n";
-            }
-
-            return key;
         }
     }
 }
diff --git a/WIDESEAWCS_Server/WIDESEAWCS_Core/ApiDoc/ByteHelper.cs b/WIDESEAWCS_Server/WIDESEAWCS_Core/ApiDoc/ByteHelper.cs
new file mode 100644
index 0000000..f903076
--- /dev/null
+++ b/WIDESEAWCS_Server/WIDESEAWCS_Core/ApiDoc/ByteHelper.cs
@@ -0,0 +1,24 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace WIDESEAWCS_Core.ApiDoc
+{
+    public class ByteHelper
+    {
+        public static byte[] StreamToBytes(Stream stream)
+        {
+            byte[] bytes = new byte[stream.Length];
+            stream.Read(bytes, 0, bytes.Length);
+            stream.Seek(0, SeekOrigin.Begin);
+            return bytes;
+        }
+
+        public static Stream BytesToStream(byte[] bytes)
+        {
+            return new MemoryStream(bytes);
+        }
+    }
+}
diff --git a/WIDESEAWCS_Server/WIDESEAWCS_Core/ApiDoc/HtmlHelper.cs b/WIDESEAWCS_Server/WIDESEAWCS_Core/ApiDoc/HtmlHelper.cs
new file mode 100644
index 0000000..2e7ba47
--- /dev/null
+++ b/WIDESEAWCS_Server/WIDESEAWCS_Core/ApiDoc/HtmlHelper.cs
@@ -0,0 +1,69 @@
+锘縰sing Microsoft.OpenApi.Interfaces;
+using Microsoft.OpenApi.Models;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace WIDESEAWCS_Core.ApiDoc
+{
+    public class HtmlHelper
+    {
+        /// <summary>
+        /// 灏嗘暟鎹亶鍘嗛潤鎬侀〉闈腑
+        /// </summary>
+        /// <param name="templatePath">闈欐�侀〉闈㈠湴鍧�</param>
+        /// <param name="model">鑾峰彇鍒扮殑鏂囦欢鏁版嵁</param>
+        /// <returns></returns>
+        public static string GeneritorSwaggerHtml(string templatePath, OpenApiDocument model)
+        {
+            var template = System.IO.File.ReadAllText(templatePath);
+
+            return string.Empty;
+        }
+
+        
+
+        public static Dictionary<string, object> GetBodyParam(IDictionary<string, OpenApiSchema> schemas, string schemaName)
+        {
+            if (schemas.ContainsKey(schemaName))
+            {
+                OpenApiSchema schema = schemas[schemaName];
+                Dictionary<string, object> pairs = new Dictionary<string, object>();
+                foreach (var pair in schema.Properties)
+                {
+                    if (pair.Value.Type == "object")
+                    {
+
+                    }
+                    else if (pair.Value.Type == "array")
+                    {
+                        if (pair.Value.Items.Reference != null)
+                        {
+                            string childSchemaName = pair.Value.Items.Reference.Id;
+                            Dictionary<string, object> keyValuePairs = GetBodyParam(schemas, childSchemaName);
+                            if (keyValuePairs != null && keyValuePairs.Keys.Count > 0)
+                            {
+                                pairs.Add(pair.Key, keyValuePairs);
+                            }
+                        }
+
+                    }
+                    else
+                    {
+                        pairs.Add(pair.Key, new
+                        {
+                            ParamName = pair.Key,
+                            Description = pair.Value.Description,
+                            ParamType = pair.Value.Type,
+                            Required = (schema.Required.FirstOrDefault(x => x == pair.Key) != null).ToString()
+                        });
+                    }
+                }
+                return pairs;
+            }
+            return null;
+        }
+    }
+}
diff --git a/WIDESEAWCS_Server/WIDESEAWCS_Core/App.cs b/WIDESEAWCS_Server/WIDESEAWCS_Core/App.cs
index 5d53caa..3c87168 100644
--- a/WIDESEAWCS_Server/WIDESEAWCS_Core/App.cs
+++ b/WIDESEAWCS_Server/WIDESEAWCS_Core/App.cs
@@ -119,7 +119,7 @@
         /// <param name="serviceProvider"></param>
         /// <param name="mustBuild"></param>
         /// <returns></returns>
-        public static object GetService(Type type, IServiceProvider? serviceProvider = null, bool mustBuild = true)
+        public static object? GetService(Type type, IServiceProvider? serviceProvider = null, bool mustBuild = true)
         {
             object? obj = (serviceProvider ?? GetServiceProvider(type, mustBuild, false))?.GetService(type);
             return obj;
diff --git a/WIDESEAWCS_Server/WIDESEAWCS_Core/Attributes/CacheAttribute.cs b/WIDESEAWCS_Server/WIDESEAWCS_Core/Attributes/CacheAttribute.cs
new file mode 100644
index 0000000..545ae6f
--- /dev/null
+++ b/WIDESEAWCS_Server/WIDESEAWCS_Core/Attributes/CacheAttribute.cs
@@ -0,0 +1,20 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace WIDESEAWCS_Core.Attributes
+{
+    /// <summary>
+    /// 杩欎釜Attribute灏辨槸浣跨敤鏃跺�欑殑楠岃瘉锛屾妸瀹冩坊鍔犲埌瑕佺紦瀛樻暟鎹殑鏂规硶涓紝鍗冲彲瀹屾垚缂撳瓨鐨勬搷浣溿��
+    /// </summary>
+    [AttributeUsage(AttributeTargets.Method, Inherited = true)]
+    public class CacheAttribute : Attribute
+    {
+        /// <summary>
+        /// 缂撳瓨缁濆杩囨湡鏃堕棿锛堝垎閽燂級
+        /// </summary>
+        public int AbsoluteExpiration { get; set; } = 30;
+    }
+}
diff --git a/WIDESEAWCS_Server/WIDESEAWCS_Core/Attributes/ModelValidateAttribute.cs b/WIDESEAWCS_Server/WIDESEAWCS_Core/Attributes/ModelValidateAttribute.cs
index 5518cbd..dcd3e92 100644
--- a/WIDESEAWCS_Server/WIDESEAWCS_Core/Attributes/ModelValidateAttribute.cs
+++ b/WIDESEAWCS_Server/WIDESEAWCS_Core/Attributes/ModelValidateAttribute.cs
@@ -9,16 +9,41 @@
     [AttributeUsage(AttributeTargets.Property)]
     public class PropertyValidateAttribute : Attribute
     {
+        /// <summary>
+        /// 鏈�澶у��
+        /// </summary>
         public int MaxValue { get; set; } = int.MaxValue;
 
+        /// <summary>
+        /// 鏈�灏忓��
+        /// </summary>
         public int MinValue { get; set; } = int.MinValue;
 
+        /// <summary>
+        /// 闈炵┖
+        /// </summary>
         public bool NotNullAndEmpty { get; set; } = true;
 
+        /// <summary>
+        /// 鏄惁鍖呭惈鏈�澶у��
+        /// </summary>
         public bool IsContainMaxValue { get; set; } = false;
 
+        /// <summary>
+        /// 鏄惁鍖呭惈鏈�灏忓��
+        /// </summary>
         public bool IsContainMinValue { get; set; } = false;
 
+        /// <summary>
+        /// 鏍规嵁鍏朵粬灞炴�ч潪绌哄垽鏂綋鍓嶆槸鍚︿负闈炵┖
+        /// </summary>
+        public string NotNullAndEmptyWithProperty { get; set; }
+
+        /// <summary>
+        /// 鏍规嵁鍏朵粬灞炴�у�煎垽鏂綋鍓嶆槸鍚︿负闈炵┖(鏍煎紡銆恘ew string[]{ "灞炴�у悕绉�", "灞炴�у��" }銆�)
+        /// </summary>
+        public string[] NotNullAndEmptyWithPropertyAndValue { get; set; }
+
         public string Description { get; set; }
 
         public PropertyValidateAttribute(string description)
diff --git a/WIDESEAWCS_Server/WIDESEAWCS_Core/BaseServices/ServiceBase.cs b/WIDESEAWCS_Server/WIDESEAWCS_Core/BaseServices/ServiceBase.cs
index 4622588..4403d2e 100644
--- a/WIDESEAWCS_Server/WIDESEAWCS_Core/BaseServices/ServiceBase.cs
+++ b/WIDESEAWCS_Server/WIDESEAWCS_Core/BaseServices/ServiceBase.cs
@@ -12,6 +12,7 @@
 using System.Linq.Expressions;
 using System.Reflection;
 using WIDESEAWCS_Core.BaseRepository;
+using WIDESEAWCS_Core.Const;
 using WIDESEAWCS_Core.Enums;
 using WIDESEAWCS_Core.Helper;
 using WIDESEAWCS_Core.Utilities;
@@ -103,7 +104,23 @@
                     LinqExpressionType expressionType = searchParametersList[i].DisplayType.GetLinqCondition();
                     if (expressionType == LinqExpressionType.Equal)
                     {
-                        where += $"{searchParametersList[i].Name} = '{results[j].Item3}'";
+                        where += $"{searchParametersList[i].Name} {HtmlElementType.Equal} '{results[j].Item3}'";
+                    }
+                    else if (expressionType == LinqExpressionType.ThanOrEqual)
+                    {
+                        where += $"{searchParametersList[i].Name} {HtmlElementType.ThanOrEqual} '{searchParametersList[i].Value}'";
+                    }
+                    else if (expressionType == LinqExpressionType.LessThanOrEqual)
+                    {
+                        where += $"{searchParametersList[i].Name} {HtmlElementType.LessOrEqual} '{searchParametersList[i].Value}'";
+                    }
+                    else if (expressionType == LinqExpressionType.GreaterThan)
+                    {
+                        where += $"{searchParametersList[i].Name} {HtmlElementType.GT} '{searchParametersList[i].Value}'";
+                    }
+                    else if (expressionType == LinqExpressionType.LessThan)
+                    {
+                        where += $"{searchParametersList[i].Name} {HtmlElementType.LT} '{searchParametersList[i].Value}'";
                     }
                     else
                     {
diff --git a/WIDESEAWCS_Server/WIDESEAWCS_Core/Caches/Caching.cs b/WIDESEAWCS_Server/WIDESEAWCS_Core/Caches/Caching.cs
deleted file mode 100644
index 8662c7a..0000000
--- a/WIDESEAWCS_Server/WIDESEAWCS_Core/Caches/Caching.cs
+++ /dev/null
@@ -1,351 +0,0 @@
-锘縰sing Microsoft.Extensions.Caching.Distributed;
-using Microsoft.Extensions.Caching.Memory;
-using Newtonsoft.Json;
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-using System.Threading.Tasks;
-using WIDESEAWCS_Core.Const;
-
-namespace WIDESEAWCS_Core.Caches
-{
-    /// <summary>
-    /// 瀹炰緥鍖栫紦瀛樻帴鍙Caching
-    /// </summary>
-    public class Caching : ICaching
-    {
-        private readonly IDistributedCache _cache;
-
-        public Caching(IDistributedCache cache)
-        {
-            _cache = cache;
-        }
-
-        private byte[] GetBytes<T>(T source)
-        {
-            return Encoding.UTF8.GetBytes(JsonConvert.SerializeObject(source));
-        }
-
-        public IDistributedCache Cache => _cache;
-
-        public void AddCacheKey(string cacheKey)
-        {
-            var res = _cache.GetString(CacheConst.KeyAll);
-            var allkeys = string.IsNullOrWhiteSpace(res) ? new List<string>() : JsonConvert.DeserializeObject<List<string>>(res);
-            if (!allkeys.Any(m => m == cacheKey))
-            {
-                allkeys.Add(cacheKey);
-                _cache.SetString(CacheConst.KeyAll, JsonConvert.SerializeObject(allkeys));
-            }
-        }
-
-        /// <summary>
-        /// 澧炲姞缂撳瓨Key
-        /// </summary>
-        /// <param name="cacheKey"></param>
-        /// <returns></returns>
-        public async Task AddCacheKeyAsync(string cacheKey)
-        {
-            var res = await _cache.GetStringAsync(CacheConst.KeyAll);
-            var allkeys = string.IsNullOrWhiteSpace(res) ? new List<string>() : JsonConvert.DeserializeObject<List<string>>(res);
-            if (!allkeys.Any(m => m == cacheKey))
-            {
-                allkeys.Add(cacheKey);
-                await _cache.SetStringAsync(CacheConst.KeyAll, JsonConvert.SerializeObject(allkeys));
-            }
-        }
-
-        public void DelByPattern(string key)
-        {
-            var allkeys = GetAllCacheKeys();
-            if (allkeys == null) return;
-
-            var delAllkeys = allkeys.Where(u => u.Contains(key)).ToList();
-            delAllkeys.ForEach(u => { _cache.Remove(u); });
-
-            // 鏇存柊鎵�鏈夌紦瀛橀敭
-            allkeys = allkeys.Where(u => !u.Contains(key)).ToList();
-            _cache.SetString(CacheConst.KeyAll, JsonConvert.SerializeObject(allkeys));
-        }
-
-        /// <summary>
-        /// 鍒犻櫎鏌愮壒寰佸叧閿瓧缂撳瓨
-        /// </summary>
-        /// <param name="key"></param>
-        /// <returns></returns>
-        public async Task DelByPatternAsync(string key)
-        {
-            var allkeys = await GetAllCacheKeysAsync();
-            if (allkeys == null) return;
-
-            var delAllkeys = allkeys.Where(u => u.Contains(key)).ToList();
-            delAllkeys.ForEach(u => { _cache.Remove(u); });
-
-            // 鏇存柊鎵�鏈夌紦瀛橀敭
-            allkeys = allkeys.Where(u => !u.Contains(key)).ToList();
-            await _cache.SetStringAsync(CacheConst.KeyAll, JsonConvert.SerializeObject(allkeys));
-        }
-
-        public void DelCacheKey(string cacheKey)
-        {
-            var res = _cache.GetString(CacheConst.KeyAll);
-            var allkeys = string.IsNullOrWhiteSpace(res) ? new List<string>() : JsonConvert.DeserializeObject<List<string>>(res);
-            if (allkeys.Any(m => m == cacheKey))
-            {
-                allkeys.Remove(cacheKey);
-                _cache.SetString(CacheConst.KeyAll, JsonConvert.SerializeObject(allkeys));
-            }
-        }
-
-        /// <summary>
-        /// 鍒犻櫎缂撳瓨
-        /// </summary>
-        /// <param name="cacheKey"></param>
-        /// <returns></returns>
-        public async Task DelCacheKeyAsync(string cacheKey)
-        {
-            var res = await _cache.GetStringAsync(CacheConst.KeyAll);
-            var allkeys = string.IsNullOrWhiteSpace(res) ? new List<string>() : JsonConvert.DeserializeObject<List<string>>(res);
-            if (allkeys.Any(m => m == cacheKey))
-            {
-                allkeys.Remove(cacheKey);
-                await _cache.SetStringAsync(CacheConst.KeyAll, JsonConvert.SerializeObject(allkeys));
-            }
-        }
-
-        public bool Exists(string cacheKey)
-        {
-            var res = _cache.Get(cacheKey);
-            return res != null;
-        }
-
-        /// <summary>
-        /// 妫�鏌ョ粰瀹� key 鏄惁瀛樺湪
-        /// </summary>
-        /// <param name="cacheKey">閿�</param>
-        /// <returns></returns>
-        public async Task<bool> ExistsAsync(string cacheKey)
-        {
-            var res = await _cache.GetAsync(cacheKey);
-            return res != null;
-        }
-
-        public List<string> GetAllCacheKeys()
-        {
-            var res = _cache.GetString(CacheConst.KeyAll);
-            return string.IsNullOrWhiteSpace(res) ? null : JsonConvert.DeserializeObject<List<string>>(res);
-        }
-
-        /// <summary>
-        /// 鑾峰彇鎵�鏈夌紦瀛樺垪琛�
-        /// </summary>
-        /// <returns></returns>
-        public async Task<List<string>> GetAllCacheKeysAsync()
-        {
-            var res = await _cache.GetStringAsync(CacheConst.KeyAll);
-            return string.IsNullOrWhiteSpace(res) ? null : JsonConvert.DeserializeObject<List<string>>(res);
-        }
-
-        public T Get<T>(string cacheKey)
-        {
-            var res = _cache.Get(cacheKey);
-            return res == null ? default : JsonConvert.DeserializeObject<T>(Encoding.UTF8.GetString(res));
-        }
-
-        /// <summary>
-        /// 鑾峰彇缂撳瓨
-        /// </summary>
-        /// <typeparam name="T"></typeparam>
-        /// <param name="cacheKey"></param>
-        /// <returns></returns>
-        public async Task<T> GetAsync<T>(string cacheKey)
-        {
-            var res = await _cache.GetAsync(cacheKey);
-            return res == null ? default : JsonConvert.DeserializeObject<T>(Encoding.UTF8.GetString(res));
-        }
-
-        public object Get(Type type, string cacheKey)
-        {
-            var res = _cache.Get(cacheKey);
-            return res == null ? default : JsonConvert.DeserializeObject(Encoding.UTF8.GetString(res), type);
-        }
-
-        public async Task<object> GetAsync(Type type, string cacheKey)
-        {
-            var res = await _cache.GetAsync(cacheKey);
-            return res == null ? default : JsonConvert.DeserializeObject(Encoding.UTF8.GetString(res), type);
-        }
-
-        public string GetString(string cacheKey)
-        {
-            return _cache.GetString(cacheKey);
-        }
-
-        /// <summary>
-        /// 鑾峰彇缂撳瓨
-        /// </summary>
-        /// <param name="cacheKey"></param>
-        /// <returns></returns>
-        public async Task<string> GetStringAsync(string cacheKey)
-        {
-            return await _cache.GetStringAsync(cacheKey);
-        }
-
-        public void Remove(string key)
-        {
-            _cache.Remove(key);
-            DelCacheKey(key);
-        }
-
-        /// <summary>
-        /// 鍒犻櫎缂撳瓨
-        /// </summary>
-        /// <param name="key"></param>
-        /// <returns></returns>
-        public async Task RemoveAsync(string key)
-        {
-            await _cache.RemoveAsync(key);
-            await DelCacheKeyAsync(key);
-        }
-
-        public void RemoveAll()
-        {
-            var catches = GetAllCacheKeys();
-            foreach (var @catch in catches) Remove(@catch);
-
-            catches.Clear();
-            _cache.SetString(CacheConst.KeyAll, JsonConvert.SerializeObject(catches));
-        }
-
-        public async Task RemoveAllAsync()
-        {
-            var catches = await GetAllCacheKeysAsync();
-            foreach (var @catch in catches) await RemoveAsync(@catch);
-
-            catches.Clear();
-            await _cache.SetStringAsync(CacheConst.KeyAll, JsonConvert.SerializeObject(catches));
-        }
-
-
-        public void Set<T>(string cacheKey, T value, TimeSpan? expire = null)
-        {
-            _cache.Set(cacheKey, GetBytes(value),
-                expire == null
-                    ? new DistributedCacheEntryOptions() { AbsoluteExpirationRelativeToNow = TimeSpan.FromHours(6) }
-                    : new DistributedCacheEntryOptions() { AbsoluteExpirationRelativeToNow = expire });
-
-            AddCacheKey(cacheKey);
-        }
-
-        /// <summary>
-        /// 澧炲姞瀵硅薄缂撳瓨
-        /// </summary>
-        /// <param name="cacheKey"></param>
-        /// <param name="value"></param>
-        /// <returns></returns>
-        public async Task SetAsync<T>(string cacheKey, T value)
-        {
-            await _cache.SetAsync(cacheKey, Encoding.UTF8.GetBytes(JsonConvert.SerializeObject(value)),
-                new DistributedCacheEntryOptions() { AbsoluteExpirationRelativeToNow = TimeSpan.FromHours(6) });
-
-            await AddCacheKeyAsync(cacheKey);
-        }
-
-        /// <summary>
-        /// 澧炲姞瀵硅薄缂撳瓨,骞惰缃繃鏈熸椂闂�
-        /// </summary>
-        /// <param name="cacheKey"></param>
-        /// <param name="value"></param>
-        /// <param name="expire"></param>
-        /// <returns></returns>
-        public async Task SetAsync<T>(string cacheKey, T value, TimeSpan expire)
-        {
-            await _cache.SetAsync(cacheKey, Encoding.UTF8.GetBytes(JsonConvert.SerializeObject(value)),
-                new DistributedCacheEntryOptions() { AbsoluteExpirationRelativeToNow = expire });
-
-            await AddCacheKeyAsync(cacheKey);
-        }
-
-        public void SetPermanent<T>(string cacheKey, T value)
-        {
-            _cache.Set(cacheKey, Encoding.UTF8.GetBytes(JsonConvert.SerializeObject(value)));
-            AddCacheKey(cacheKey);
-        }
-
-        public async Task SetPermanentAsync<T>(string cacheKey, T value)
-        {
-            await _cache.SetAsync(cacheKey, Encoding.UTF8.GetBytes(JsonConvert.SerializeObject(value)));
-            await AddCacheKeyAsync(cacheKey);
-        }
-
-        public void SetString(string cacheKey, string value, TimeSpan? expire = null)
-        {
-            if (expire == null)
-                _cache.SetString(cacheKey, value, new DistributedCacheEntryOptions() { AbsoluteExpirationRelativeToNow = TimeSpan.FromHours(6) });
-            else
-                _cache.SetString(cacheKey, value, new DistributedCacheEntryOptions() { AbsoluteExpirationRelativeToNow = expire });
-
-            AddCacheKey(cacheKey);
-        }
-
-        /// <summary>
-        /// 澧炲姞瀛楃涓茬紦瀛�
-        /// </summary>
-        /// <param name="cacheKey"></param>
-        /// <param name="value"></param>
-        /// <returns></returns>
-        public async Task SetStringAsync(string cacheKey, string value)
-        {
-            await _cache.SetStringAsync(cacheKey, value, new DistributedCacheEntryOptions() { AbsoluteExpirationRelativeToNow = TimeSpan.FromHours(6) });
-
-            await AddCacheKeyAsync(cacheKey);
-        }
-
-        /// <summary>
-        /// 澧炲姞瀛楃涓茬紦瀛�,骞惰缃繃鏈熸椂闂�
-        /// </summary>
-        /// <param name="cacheKey"></param>
-        /// <param name="value"></param>
-        /// <param name="expire"></param>
-        /// <returns></returns>
-        public async Task SetStringAsync(string cacheKey, string value, TimeSpan expire)
-        {
-            await _cache.SetStringAsync(cacheKey, value, new DistributedCacheEntryOptions() { AbsoluteExpirationRelativeToNow = expire });
-
-            await AddCacheKeyAsync(cacheKey);
-        }
-
-
-        /// <summary>
-        /// 缂撳瓨鏈�澶ц鑹叉暟鎹寖鍥�
-        /// </summary>
-        /// <param name="userId"></param>
-        /// <param name="dataScopeType"></param>
-        /// <returns></returns>
-        public async Task SetMaxDataScopeType(long userId, int dataScopeType)
-        {
-            var cacheKey = CacheConst.KeyMaxDataScopeType + userId;
-            await SetStringAsync(cacheKey, dataScopeType.ToString());
-
-            await AddCacheKeyAsync(cacheKey);
-        }
-
-        /// <summary>
-        ///  鏍规嵁鐖堕敭娓呯┖
-        /// </summary>
-        /// <param name="key"></param>
-        /// <returns></returns>
-        public async Task DelByParentKeyAsync(string key)
-        {
-            var allkeys = await GetAllCacheKeysAsync();
-            if (allkeys == null) return;
-
-            var delAllkeys = allkeys.Where(u => u.StartsWith(key)).ToList();
-            delAllkeys.ForEach(Remove);
-            // 鏇存柊鎵�鏈夌紦瀛橀敭
-            allkeys = allkeys.Where(u => !u.StartsWith(key)).ToList();
-            await SetStringAsync(CacheConst.KeyAll, JsonConvert.SerializeObject(allkeys));
-        }
-    }
-}
diff --git a/WIDESEAWCS_Server/WIDESEAWCS_Core/Caches/ICacheService.cs b/WIDESEAWCS_Server/WIDESEAWCS_Core/Caches/ICacheService.cs
index 642f9a6..2c076d7 100644
--- a/WIDESEAWCS_Server/WIDESEAWCS_Core/Caches/ICacheService.cs
+++ b/WIDESEAWCS_Server/WIDESEAWCS_Core/Caches/ICacheService.cs
@@ -29,6 +29,8 @@
 
         void AddOrUpdate(string key, string value, int expireSeconds = -1, bool isSliding = false);
 
+        void AddOrUpdate(string key, object value, int expireSeconds = -1, bool isSliding = false);
+
         /// <summary>
         /// 鍒犻櫎缂撳瓨
         /// </summary>
@@ -48,13 +50,15 @@
         /// </summary>
         /// <param name="key">缂撳瓨Key</param>
         /// <returns></returns>
-        T Get<T>(string key) where T : class;
+        T? Get<T>(string key) where T : class;
+
+        object? Get(Type type, string key);
 
         /// <summary>
         /// 鑾峰彇缂撳瓨
         /// </summary>
         /// <param name="key">缂撳瓨Key</param>
         /// <returns></returns>
-        string Get(string key);
+        string? Get(string key);
     }
 }
diff --git a/WIDESEAWCS_Server/WIDESEAWCS_Core/Caches/ICaching.cs b/WIDESEAWCS_Server/WIDESEAWCS_Core/Caches/ICaching.cs
deleted file mode 100644
index 48137c0..0000000
--- a/WIDESEAWCS_Server/WIDESEAWCS_Core/Caches/ICaching.cs
+++ /dev/null
@@ -1,59 +0,0 @@
-锘縰sing Microsoft.Extensions.Caching.Distributed;
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-using System.Threading.Tasks;
-
-namespace WIDESEAWCS_Core.Caches
-{
-    /// <summary>
-    /// 缂撳瓨鎶借薄鎺ュ彛,鍩轰簬IDistributedCache灏佽
-    /// </summary>
-    public interface ICaching
-    {
-        public IDistributedCache Cache { get; }
-        void AddCacheKey(string cacheKey);
-        Task AddCacheKeyAsync(string cacheKey);
-
-        void DelByPattern(string key);
-        Task DelByPatternAsync(string key);
-
-        void DelCacheKey(string cacheKey);
-        Task DelCacheKeyAsync(string cacheKey);
-
-        bool Exists(string cacheKey);
-        Task<bool> ExistsAsync(string cacheKey);
-
-        List<string> GetAllCacheKeys();
-        Task<List<string>> GetAllCacheKeysAsync();
-
-        T Get<T>(string cacheKey);
-        Task<T> GetAsync<T>(string cacheKey);
-
-        object Get(Type type, string cacheKey);
-        Task<object> GetAsync(Type type, string cacheKey);
-
-        string GetString(string cacheKey);
-        Task<string> GetStringAsync(string cacheKey);
-
-        void Remove(string key);
-        Task RemoveAsync(string key);
-
-        void RemoveAll();
-        Task RemoveAllAsync();
-
-        void Set<T>(string cacheKey, T value, TimeSpan? expire = null);
-        Task SetAsync<T>(string cacheKey, T value);
-        Task SetAsync<T>(string cacheKey, T value, TimeSpan expire);
-
-        void SetPermanent<T>(string cacheKey, T value);
-        Task SetPermanentAsync<T>(string cacheKey, T value);
-
-        void SetString(string cacheKey, string value, TimeSpan? expire = null);
-        Task SetStringAsync(string cacheKey, string value);
-        Task SetStringAsync(string cacheKey, string value, TimeSpan expire);
-
-        Task DelByParentKeyAsync(string key);
-    }
-}
diff --git a/WIDESEAWCS_Server/WIDESEAWCS_Core/Caches/MemoryCacheService.cs b/WIDESEAWCS_Server/WIDESEAWCS_Core/Caches/MemoryCacheService.cs
index 16c2061..ce7a585 100644
--- a/WIDESEAWCS_Server/WIDESEAWCS_Core/Caches/MemoryCacheService.cs
+++ b/WIDESEAWCS_Server/WIDESEAWCS_Core/Caches/MemoryCacheService.cs
@@ -1,9 +1,13 @@
-锘縰sing Microsoft.Extensions.Caching.Memory;
+锘縰sing Microsoft.Extensions.Caching.Distributed;
+using Microsoft.Extensions.Caching.Memory;
+using Newtonsoft.Json;
+using SqlSugar;
 using System;
 using System.Collections.Generic;
 using System.Linq;
 using System.Text;
 using System.Threading.Tasks;
+using WIDESEAWCS_Core.Helper;
 
 namespace WIDESEAWCS_Core.Caches
 {
@@ -23,7 +27,7 @@
 
         public bool AddObject(string key, object value, int expireSeconds = -1, bool isSliding = false)
         {
-            if (expireSeconds != -1)
+            if (expireSeconds > 0)
             {
                 _cache.Set(key,
                     value,
@@ -52,6 +56,19 @@
             }
         }
 
+        public void AddOrUpdate(string key, object value, int expireSeconds = -1, bool isSliding = false)
+        {
+            if (!string.IsNullOrEmpty(Get(key)))
+            {
+                Remove(key);
+                Add(key, value.Serialize(), expireSeconds, isSliding);
+            }
+            else
+            {
+                Add(key, value.Serialize(), expireSeconds, isSliding);
+            }
+        }
+
         public void Dispose()
         {
             if (_cache != null)
@@ -68,16 +85,21 @@
             return _cache.Get(key) != null;
         }
 
-        public T Get<T>(string key) where T : class
+        public T? Get<T>(string key) where T : class
         {
             if (key == null)
             {
                 throw new ArgumentNullException(nameof(key));
             }
-            return _cache.Get(key) as T;
+            object? value = _cache.Get(key);
+            if (value == null)
+            {
+                throw new ArgumentNullException(nameof(key));
+            }
+            return value as T;
         }
 
-        public string Get(string key)
+        public string? Get(string key)
         {
             try
             {
@@ -89,6 +111,19 @@
             }
         }
 
+        public object? Get(Type type, string key)
+        {
+            try
+            {
+                object res = _cache.Get(key);
+                return res == null ? default : JsonConvert.DeserializeObject(res?.ToString() ?? "{}", type);
+            }
+            catch
+            {
+                return string.Empty;
+            }
+        }
+
         public bool Remove(string key)
         {
             if (key == null)
diff --git a/WIDESEAWCS_Server/WIDESEAWCS_Core/Const/HtmlElementType.cs b/WIDESEAWCS_Server/WIDESEAWCS_Core/Const/HtmlElementType.cs
index 2405444..0120ac2 100644
--- a/WIDESEAWCS_Server/WIDESEAWCS_Core/Const/HtmlElementType.cs
+++ b/WIDESEAWCS_Server/WIDESEAWCS_Core/Const/HtmlElementType.cs
@@ -25,7 +25,7 @@
         public const string like = "like";
 
         public const string ThanOrEqual = ">=";
-        public const string LessOrequal = "<=";
+        public const string LessOrEqual = "<=";
         public const string Contains = "in";
         public const string Equal = "=";
     }
diff --git a/WIDESEAWCS_Server/WIDESEAWCS_Core/Extensions/SwaggerSetup.cs b/WIDESEAWCS_Server/WIDESEAWCS_Core/Extensions/SwaggerSetup.cs
index 0c20385..2e5a1ce 100644
--- a/WIDESEAWCS_Server/WIDESEAWCS_Core/Extensions/SwaggerSetup.cs
+++ b/WIDESEAWCS_Server/WIDESEAWCS_Core/Extensions/SwaggerSetup.cs
@@ -35,16 +35,16 @@
             services.AddSwaggerGen(c =>
             {
                 //閬嶅巻鍑哄叏閮ㄧ殑鐗堟湰锛屽仛鏂囨。淇℃伅灞曠ず
-                typeof(ApiVersions).GetEnumNames().ToList().ForEach(version =>
+                //typeof(ApiVersions).GetEnumNames().ToList().ForEach(version =>
+                //{
+                c.SwaggerDoc("v1", new OpenApiInfo
                 {
-                    c.SwaggerDoc(version, new OpenApiInfo
-                    {
-                        Version = version,
-                        Title = $"{ApiName} 鎺ュ彛鏂囨。鈥斺�攞RuntimeInformation.FrameworkDescription}",
-                        Description = $"{ApiName} HTTP API " + version,
-                    });
-                    c.OrderActionsBy(o => o.RelativePath);
+                    Version = "v1",
+                    Title = $"{ApiName} 鎺ュ彛鏂囨。鈥斺�攞RuntimeInformation.FrameworkDescription}",
+                    Description = $"{ApiName} HTTP API " + "v1"
                 });
+                c.OrderActionsBy(o => o.RelativePath);
+                //});
 
                 c.UseInlineDefinitionsForEnums();
                 try
@@ -120,11 +120,7 @@
             /// <summary>
             /// V1 鐗堟湰
             /// </summary>
-            V1 = 1,
-            /// <summary>
-            /// V2 鐗堟湰
-            /// </summary>
-            V2 = 2,
+            V1 = 1
         }
     }
 }
diff --git a/WIDESEAWCS_Server/WIDESEAWCS_Core/Helper/MD5Helper.cs b/WIDESEAWCS_Server/WIDESEAWCS_Core/Helper/MD5Helper.cs
new file mode 100644
index 0000000..29dc7e7
--- /dev/null
+++ b/WIDESEAWCS_Server/WIDESEAWCS_Core/Helper/MD5Helper.cs
@@ -0,0 +1,101 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Security.Cryptography;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace WIDESEAWCS_Core.Helper
+{
+    public class MD5Helper
+    {
+        /// <summary>
+        /// 16浣峂D5鍔犲瘑
+        /// </summary>
+        /// <param name="password"></param>
+        /// <returns></returns>
+        public static string MD5Encrypt16(string password)
+        {
+            var md5 = MD5.Create();
+            string t2 = BitConverter.ToString(md5.ComputeHash(Encoding.Default.GetBytes(password)), 4, 8);
+            t2 = t2.Replace("-", string.Empty);
+            return t2;
+        }
+
+        /// <summary>
+        /// 32浣峂D5鍔犲瘑
+        /// </summary>
+        /// <param name="password"></param>
+        /// <returns></returns>
+        public static string MD5Encrypt32(string password = "")
+        {
+            string pwd = string.Empty;
+            try
+            {
+                if (!string.IsNullOrEmpty(password) && !string.IsNullOrWhiteSpace(password))
+                {
+                    MD5 md5 = MD5.Create(); //瀹炰緥鍖栦竴涓猰d5瀵瑰儚
+                    // 鍔犲瘑鍚庢槸涓�涓瓧鑺傜被鍨嬬殑鏁扮粍锛岃繖閲岃娉ㄦ剰缂栫爜UTF8/Unicode绛夌殑閫夋嫨銆�
+                    byte[] s = md5.ComputeHash(Encoding.UTF8.GetBytes(password));
+                    // 閫氳繃浣跨敤寰幆锛屽皢瀛楄妭绫诲瀷鐨勬暟缁勮浆鎹负瀛楃涓诧紝姝ゅ瓧绗︿覆鏄父瑙勫瓧绗︽牸寮忓寲鎵�寰�
+                    foreach (var item in s)
+                    {
+                        // 灏嗗緱鍒扮殑瀛楃涓蹭娇鐢ㄥ崄鍏繘鍒剁被鍨嬫牸寮忋�傛牸寮忓悗鐨勫瓧绗︽槸灏忓啓鐨勫瓧姣嶏紝濡傛灉浣跨敤澶у啓锛圶锛夊垯鏍煎紡鍚庣殑瀛楃鏄ぇ鍐欏瓧绗� 
+                        pwd = string.Concat(pwd, item.ToString("X2"));
+                    }
+                }
+            }
+            catch
+            {
+                throw new Exception($"閿欒鐨� password 瀛楃涓�:銆恵password}銆�");
+            }
+            return pwd;
+        }
+
+        /// <summary>
+        /// 64浣峂D5鍔犲瘑
+        /// </summary>
+        /// <param name="password"></param>
+        /// <returns></returns>
+        public static string MD5Encrypt64(string password)
+        {
+            // 瀹炰緥鍖栦竴涓猰d5瀵瑰儚
+            // 鍔犲瘑鍚庢槸涓�涓瓧鑺傜被鍨嬬殑鏁扮粍锛岃繖閲岃娉ㄦ剰缂栫爜UTF8/Unicode绛夌殑閫夋嫨銆�
+            MD5 md5 = MD5.Create();
+            byte[] s = md5.ComputeHash(Encoding.UTF8.GetBytes(password));
+            return Convert.ToBase64String(s);
+        }
+        /// <summary>
+        /// Sha1鍔犲瘑
+        /// </summary>
+        /// <param name="str">瑕佸姞瀵嗙殑瀛楃涓�</param>
+        /// <returns>鍔犲瘑鍚庣殑鍗佸叚杩涘埗鐨勫搱甯屾暎鍒楋紙瀛楃涓诧級</returns>
+        public static string Sha1(string str, string format = "x2")
+        {
+            var buffer = Encoding.UTF8.GetBytes(str);
+            var data = SHA1.Create().ComputeHash(buffer);
+            var sb = new StringBuilder();
+            foreach (var t in data)
+            {
+                sb.Append(t.ToString(format));
+            }
+            return sb.ToString();
+        }
+        /// <summary>
+        /// Sha256鍔犲瘑
+        /// </summary>
+        /// <param name="str">瑕佸姞瀵嗙殑瀛楃涓�</param>
+        /// <returns>鍔犲瘑鍚庣殑鍗佸叚杩涘埗鐨勫搱甯屾暎鍒楋紙瀛楃涓诧級</returns>
+        public static string Sha256(string str, string format = "x2")
+        {
+            var buffer = Encoding.UTF8.GetBytes(str);
+            var data = SHA256.Create().ComputeHash(buffer);
+            var sb = new StringBuilder();
+            foreach (var t in data)
+            {
+                sb.Append(t.ToString(format));
+            }
+            return sb.ToString();
+        }
+    }
+}
diff --git a/WIDESEAWCS_Server/WIDESEAWCS_Core/Helper/ObjectExtension.cs b/WIDESEAWCS_Server/WIDESEAWCS_Core/Helper/ObjectExtension.cs
index 03e8283..ce27b68 100644
--- a/WIDESEAWCS_Server/WIDESEAWCS_Core/Helper/ObjectExtension.cs
+++ b/WIDESEAWCS_Server/WIDESEAWCS_Core/Helper/ObjectExtension.cs
@@ -1,4 +1,5 @@
-锘縰sing System;
+锘縰sing SqlSugar;
+using System;
 using System.Collections.Generic;
 using System.Linq;
 using System.Reflection;
@@ -25,7 +26,7 @@
             PropertyInfo[] propertyInfos = typeof(T).GetProperties(BindingFlags.GetProperty | BindingFlags.Public | BindingFlags.Instance);
             foreach (var property in propertyInfos)
             {
-                object value = null;
+                object? value = null;
                 if (!dic.TryGetValue(property.Name, out value))
                 {
                     if (!dic.TryGetValue(property.Name.FirstLetterToUpper(), out value))
@@ -36,7 +37,14 @@
                         }
                     }
                 };
-                property.SetValue(model, value?.ToString().ChangeType(property.PropertyType));
+
+                SugarColumn? sugarColumn = property.GetCustomAttribute<SugarColumn>();
+                if (sugarColumn != null && sugarColumn.IsIdentity && (value == null || value.Equals("")))
+                {
+                    continue;
+                }
+                if (value != null && sugarColumn != null && !sugarColumn.IsNullable)
+                    property.SetValue(model, value.ChangeType(property.PropertyType));
             }
             return model;
         }
diff --git a/WIDESEAWCS_Server/WIDESEAWCS_Core/Helper/UtilConvert.cs b/WIDESEAWCS_Server/WIDESEAWCS_Core/Helper/UtilConvert.cs
index 92ad304..352dd93 100644
--- a/WIDESEAWCS_Server/WIDESEAWCS_Core/Helper/UtilConvert.cs
+++ b/WIDESEAWCS_Server/WIDESEAWCS_Core/Helper/UtilConvert.cs
@@ -411,15 +411,22 @@
             switch (stringType)
             {
                 case HtmlElementType.Contains:
+                case HtmlElementType.selectlist:
+                case nameof(HtmlElementType.Contains):
                     linqExpression = LinqExpressionType.In;
                     break;
                 case HtmlElementType.ThanOrEqual:
+                case nameof(HtmlElementType.ThanOrEqual):
+                case HtmlElementType.thanorequal:
                     linqExpression = LinqExpressionType.ThanOrEqual;
                     break;
-                case HtmlElementType.LessOrequal:
+                case HtmlElementType.LessOrEqual:
+                case nameof(HtmlElementType.LessOrEqual):
+                case HtmlElementType.lessorequal:
                     linqExpression = LinqExpressionType.LessThanOrEqual;
                     break;
                 case HtmlElementType.GT:
+                case nameof(HtmlElementType.GT):
                     linqExpression = LinqExpressionType.GreaterThan;
                     break;
                 case HtmlElementType.lt:
diff --git a/WIDESEAWCS_Server/WIDESEAWCS_Core/Middlewares/ApiLogMiddleware.cs b/WIDESEAWCS_Server/WIDESEAWCS_Core/Middlewares/ApiLogMiddleware.cs
index 9940ba1..37048b0 100644
--- a/WIDESEAWCS_Server/WIDESEAWCS_Core/Middlewares/ApiLogMiddleware.cs
+++ b/WIDESEAWCS_Server/WIDESEAWCS_Core/Middlewares/ApiLogMiddleware.cs
@@ -61,7 +61,7 @@
 
                     ms.Position = 0;
                     await ms.CopyToAsync(originalBody);
-                    if (!(context.Request.Path.Value?.Contains("Get") ?? false))
+                    if (!(context.Request.Path.Value?.Contains("get") ?? true))
                         Logger.Add(requestParam, responseParam);
                 }
                 catch (Exception ex)
diff --git a/WIDESEAWCS_Server/WIDESEAWCS_Core/Middlewares/SwaggerMiddleware.cs b/WIDESEAWCS_Server/WIDESEAWCS_Core/Middlewares/SwaggerMiddleware.cs
index 42bacde..4731f2f 100644
--- a/WIDESEAWCS_Server/WIDESEAWCS_Core/Middlewares/SwaggerMiddleware.cs
+++ b/WIDESEAWCS_Server/WIDESEAWCS_Core/Middlewares/SwaggerMiddleware.cs
@@ -7,7 +7,6 @@
 using System.Text;
 using System.Threading.Tasks;
 using WIDESEAWCS_Core.Helper;
-using static WIDESEAWCS_Core.Extensions.CustomApiVersion;
 
 namespace WIDESEAWCS_Core.Middlewares
 {
@@ -25,13 +24,8 @@
             {
                 //鏍规嵁鐗堟湰鍚嶇О鍊掑簭 閬嶅巻灞曠ず
                 var apiName = AppSettings.Get(new string[] { "ApiName" });
-                typeof(ApiVersions).GetEnumNames().OrderByDescending(e => e).ToList().ForEach(version =>
-                {
-                    c.SwaggerEndpoint($"/swagger/{version}/swagger.json", $"{apiName} {version}");
-                });
-
-                c.SwaggerEndpoint($"https://petstore.swagger.io/v2/swagger.json", $"{apiName} pet");
-
+                c.SwaggerEndpoint($"/swagger/v1/swagger.json", $"{apiName} v1");
+                
                 // 灏唖wagger棣栭〉锛岃缃垚鎴戜滑鑷畾涔夌殑椤甸潰锛岃寰楄繖涓瓧绗︿覆鐨勫啓娉曪細{椤圭洰鍚�.index.html}
                 if (streamHtml.Invoke() == null)
                 {
@@ -39,6 +33,10 @@
                     //Log.Error(msg);
                     throw new Exception(msg);
                 }
+                c.DocumentTitle = $"{apiName} 鍦ㄧ嚎璋冭瘯鏂囨。";
+
+                c.InjectStylesheet("/css/swaggerdoc.css");
+                c.InjectJavascript("/js/swaggerdoc.js");
                 c.IndexStream = streamHtml;
                 c.DocExpansion(DocExpansion.None); //->淇敼鐣岄潰鎵撳紑鏃惰嚜鍔ㄦ姌鍙�
 
diff --git a/WIDESEAWCS_Server/WIDESEAWCS_Core/Utilities/EntityProperties.cs b/WIDESEAWCS_Server/WIDESEAWCS_Core/Utilities/EntityProperties.cs
index dec0451..4782e2a 100644
--- a/WIDESEAWCS_Server/WIDESEAWCS_Core/Utilities/EntityProperties.cs
+++ b/WIDESEAWCS_Server/WIDESEAWCS_Core/Utilities/EntityProperties.cs
@@ -86,9 +86,8 @@
                 }
                 else
                 {
-
                     int length = sugarColumn.Length;
-                    if (length == 0) { return (true, null, null); }
+                    if (length == 0) { return (true, null, value); }
                     //鍒ゆ柇鍙屽瓧鑺備笌鍗曞瓧娈�
                     else if (length < 8000 &&
                         ((dbType.Substring(0, 1) != "n"
@@ -118,15 +117,15 @@
         }
 
         private static readonly Dictionary<Type, string> ProperWithDbType = new Dictionary<Type, string>() {
-            {  typeof(string),SqlDbTypeName.NVarChar },
-            { typeof(DateTime),SqlDbTypeName.DateTime},
-            {typeof(long),SqlDbTypeName.BigInt },
-            {typeof(int),SqlDbTypeName.Int},
-            { typeof(decimal),SqlDbTypeName.Decimal },
-            { typeof(float),SqlDbTypeName.Float },
-            { typeof(double),SqlDbTypeName.Double },
-            {  typeof(byte),SqlDbTypeName.Int },//绫诲瀷寰呭畬
-            { typeof(Guid),SqlDbTypeName.UniqueIdentifier}
+            { typeof(string), SqlDbTypeName.NVarChar },
+            { typeof(DateTime), SqlDbTypeName.DateTime},
+            { typeof(long), SqlDbTypeName.BigInt },
+            { typeof(int), SqlDbTypeName.Int},
+            { typeof(decimal), SqlDbTypeName.Decimal },
+            { typeof(float), SqlDbTypeName.Float },
+            { typeof(double), SqlDbTypeName.Double },
+            { typeof(byte), SqlDbTypeName.Int },//绫诲瀷寰呭畬
+            { typeof(Guid), SqlDbTypeName.UniqueIdentifier}
         };
 
         public static string GetProperWithDbType(this PropertyInfo propertyInfo)
diff --git a/WIDESEAWCS_Server/WIDESEAWCS_Core/Utilities/ModelValidate.cs b/WIDESEAWCS_Server/WIDESEAWCS_Core/Utilities/ModelValidate.cs
index 005239e..f60f92f 100644
--- a/WIDESEAWCS_Server/WIDESEAWCS_Core/Utilities/ModelValidate.cs
+++ b/WIDESEAWCS_Server/WIDESEAWCS_Core/Utilities/ModelValidate.cs
@@ -5,6 +5,7 @@
 using System.Text;
 using System.Threading.Tasks;
 using WIDESEAWCS_Core.Attributes;
+using WIDESEAWCS_Core.Helper;
 
 namespace WIDESEAWCS_Core.Utilities
 {
@@ -26,6 +27,12 @@
             return SimpleValidate(propertyInfos, data);
         }
 
+        /// <summary>
+        /// 楠岃瘉瀹炰綋鍙傛暟
+        /// </summary>
+        /// <typeparam name="T"></typeparam>
+        /// <param name="data"></param>
+        /// <returns></returns>
         public static (bool, string, object?) ValidateModelData<T>(List<T> datas) where T : class, new()
         {
             Type modelType = typeof(T);
@@ -111,6 +118,76 @@
                             if (Convert.ToInt32(value.ToString()) > propertyAttribute.MaxValue) return (false, $"{(string.IsNullOrEmpty(propertyAttribute.Description) ? propertyInfo.Name : propertyAttribute.Description)}鐨勫�笺�恵value}銆戣灏忎簬銆恵propertyAttribute.MaxValue}銆�", data);
                         }
                     }
+
+                    if (!string.IsNullOrEmpty(propertyAttribute.NotNullAndEmptyWithProperty))
+                    {
+                        PropertyInfo? property = propertyInfos.FirstOrDefault(x => x.Name == propertyAttribute.NotNullAndEmptyWithProperty);
+                        if (property != null)
+                        {
+                            object? tempValue = property.GetValue(data);
+                            if (tempValue != null && !string.IsNullOrEmpty(tempValue.ToString()))
+                            {
+                                Type[] types = propertyInfo.PropertyType.GenericTypeArguments;
+                                if (types.Length == 1)
+                                {
+                                    string str = value.Serialize();
+                                    if (str == "[]")
+                                    {
+                                        return (false, $"銆恵property.Name}銆戝睘鎬х殑鍊奸潪绌烘椂銆恵propertyInfo.Name}銆戝睘鎬х殑鍊间篃涓嶅彲涓虹┖", data);
+                                    }
+                                }
+                                else if (types.Length == 0)
+                                {
+                                    if (value == null)
+                                    {
+                                        return (false, $"銆恵property.Name}銆戝睘鎬х殑鍊奸潪绌烘椂銆恵propertyInfo.Name}銆戝睘鎬х殑鍊间篃涓嶅彲涓虹┖", data);
+                                    }
+                                }
+
+                            }
+                        }
+                        else
+                        {
+                            return (false, $"鏈壘鍒般�恵propertyInfo.Name}銆戠壒鎬у睘鎬с�恵propertyAttribute.NotNullAndEmptyWithProperty}銆�", data);
+                        }
+                    }
+
+                    if (propertyAttribute.NotNullAndEmptyWithPropertyAndValue != null && propertyAttribute.NotNullAndEmptyWithPropertyAndValue.Length == 2)
+                    {
+                        PropertyInfo? property = propertyInfos.FirstOrDefault(x => x.Name == propertyAttribute.NotNullAndEmptyWithPropertyAndValue[0]);
+                        if (property != null)
+                        {
+                            object? tempValue = property.GetValue(data);
+                            if (tempValue != null && !string.IsNullOrEmpty(tempValue.ToString()))
+                            {
+                                Type[] types = propertyInfo.PropertyType.GenericTypeArguments;
+                                if (types.Length == 1)
+                                {
+                                    if (tempValue.ChangeType(property.PropertyType).ToString() == propertyAttribute.NotNullAndEmptyWithPropertyAndValue[1].ChangeType(property.PropertyType).ToString())
+                                    {
+                                        string str = value.Serialize();
+                                        if (str == "[]")
+                                        {
+                                            return (false, $"銆恵property.Name}銆戝睘鎬х殑鍊间负銆恵propertyAttribute.NotNullAndEmptyWithPropertyAndValue[1]}銆戞椂銆恵propertyInfo.Name}銆戝睘鎬х殑鍊间笉鍙负绌�", data);
+                                        }
+                                    }
+
+                                }
+                                else if (types.Length == 0)
+                                {
+                                    if (tempValue.ChangeType(property.PropertyType).ToString() == propertyAttribute.NotNullAndEmptyWithPropertyAndValue[1].ChangeType(property.PropertyType).ToString() && value == null && string.IsNullOrEmpty(value.ToString()))
+                                    {
+                                        return (false, $"銆恵property.Name}銆戝睘鎬х殑鍊间负銆恵propertyAttribute.NotNullAndEmptyWithPropertyAndValue[1]}銆戞椂銆恵propertyInfo.Name}銆戝睘鎬х殑鍊间笉鍙负绌�", data);
+                                    }
+                                }
+
+                            }
+                        }
+                        else
+                        {
+                            return (false, $"鏈壘鍒板睘鎬с�恵propertyAttribute.NotNullAndEmptyWithProperty}銆�", data);
+                        }
+                    }
                 }
             }
             catch (Exception ex)
diff --git a/WIDESEAWCS_Server/WIDESEAWCS_ISystemRepository/ISys_LogRepository.cs b/WIDESEAWCS_Server/WIDESEAWCS_ISystemRepository/ISys_LogRepository.cs
new file mode 100644
index 0000000..3c9f9a8
--- /dev/null
+++ b/WIDESEAWCS_Server/WIDESEAWCS_ISystemRepository/ISys_LogRepository.cs
@@ -0,0 +1,14 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using WIDESEAWCS_Core.BaseRepository;
+using WIDESEAWCS_Model.Models;
+
+namespace WIDESEAWCS_ISystemRepository
+{
+    public interface ISys_LogRepository : IRepository<Sys_Log>
+    {
+    }
+}
diff --git a/WIDESEAWCS_Server/WIDESEAWCS_ISystemServices/ISys_LogService.cs b/WIDESEAWCS_Server/WIDESEAWCS_ISystemServices/ISys_LogService.cs
new file mode 100644
index 0000000..166d420
--- /dev/null
+++ b/WIDESEAWCS_Server/WIDESEAWCS_ISystemServices/ISys_LogService.cs
@@ -0,0 +1,14 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using WIDESEAWCS_Core.BaseServices;
+using WIDESEAWCS_Model.Models;
+
+namespace WIDESEAWCS_ISystemServices
+{
+    public interface ISys_LogService : IService<Sys_Log>
+    {
+    }
+}
diff --git a/WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/StackerCrane/Spec/SpeStackerCrane.cs b/WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/StackerCrane/Spec/SpeStackerCrane.cs
index d70e398..6038eca 100644
--- a/WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/StackerCrane/Spec/SpeStackerCrane.cs
+++ b/WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/StackerCrane/Spec/SpeStackerCrane.cs
@@ -17,10 +17,7 @@
     /// <summary>
     /// 鑷畾涔夊爢鍨涙満
     /// </summary>
-    /// <typeparam name="T1">鍫嗗灈鏈虹姸鎬�1娉涘瀷</typeparam>
-    /// <typeparam name="T2">鍫嗗灈鏈虹姸鎬�2娉涘瀷</typeparam>
-    /// <typeparam name="T3">鍫嗗灈鏈虹姸鎬�3娉涘瀷</typeparam>
-    [Description("鍫嗗灈鏈�")]
+    [Description("鍫嗗灈鏈�2")]
     public class SpeStackerCrane : IStackerCrane
     {
         #region Private Member
@@ -193,7 +190,7 @@
 
         public bool SendCommand<T>(T command) where T : IDataTransfer, new()
         {
-            if(Communicator is SiemensS7)
+            if (Communicator is SiemensS7)
             {
                 if (!IsConnected) throw new Exception($"閫氳杩炴帴閿欒锛岃妫�鏌ョ綉缁�");
                 DeviceProDTO? devicePro = _deviceProDTOs.Where(x => x.DeviceProParamType == nameof(DeviceCommand)).OrderBy(x => x.DeviceProOffset).FirstOrDefault();
@@ -218,7 +215,7 @@
         /// <summary>
         /// 鐩戞祴鍫嗗灈鏈轰换鍔℃槸鍚﹀畬鎴�(闃叉浠诲姟瀹屾垚浜嬩欢鐩戞祴瓒呮椂锛屽畾涔夋墜鍔ㄨЕ鍙戝姛鑳�)
         /// </summary>
-         void CheckStackerCraneTaskCompleted()
+        void CheckStackerCraneTaskCompleted()
         {
             if (_isChecked)
                 return;
diff --git a/WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/WIDESEAWCS_QuartzJob.csproj b/WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/WIDESEAWCS_QuartzJob.csproj
index 068d032..967c68d 100644
--- a/WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/WIDESEAWCS_QuartzJob.csproj
+++ b/WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/WIDESEAWCS_QuartzJob.csproj
@@ -5,7 +5,7 @@
 		<ImplicitUsings>enable</ImplicitUsings>
 		<Nullable>enable</Nullable>
 		<Description>鏇存柊--鏆傛椂鍙敮鎸佽タ闂ㄥ瓙PLC璇诲彇瀵硅薄</Description>
-		<Version>2.0.3</Version>
+		<Version>2.0.4</Version>
 	</PropertyGroup>
 
 	<ItemGroup>
diff --git a/WIDESEAWCS_Server/WIDESEAWCS_Server/Controllers/System/Sys_DictionaryController.cs b/WIDESEAWCS_Server/WIDESEAWCS_Server/Controllers/System/Sys_DictionaryController.cs
index a8bd1b5..dde082a 100644
--- a/WIDESEAWCS_Server/WIDESEAWCS_Server/Controllers/System/Sys_DictionaryController.cs
+++ b/WIDESEAWCS_Server/WIDESEAWCS_Server/Controllers/System/Sys_DictionaryController.cs
@@ -48,7 +48,7 @@
                 List<string> cacheDicNos = new List<string>();
                 foreach (string n in dicNos.Where(x => !selectDicNos.Contains(x)))
                 {
-                    string str = _cacheService.Get(n);
+                    string? str = _cacheService.Get(n);
                     if (!string.IsNullOrEmpty(str))
                     {
                         VueDictionaryDTO? vueDictionary = JsonConvert.DeserializeObject<VueDictionaryDTO>(str);
@@ -81,7 +81,7 @@
 
                         foreach (var item in cusDics)
                         {
-                            VueDictionaryDTO vueDictionaryDTO = GetVueDictionary(item.Trim());
+                            VueDictionaryDTO? vueDictionaryDTO = GetVueDictionary(item.Trim());
                             if (vueDictionaryDTO != null)
                             {
                                 vueDictionaryDTOs.Add(vueDictionaryDTO);
diff --git a/WIDESEAWCS_Server/WIDESEAWCS_Server/Controllers/System/Sys_LogController.cs b/WIDESEAWCS_Server/WIDESEAWCS_Server/Controllers/System/Sys_LogController.cs
new file mode 100644
index 0000000..8bf9b04
--- /dev/null
+++ b/WIDESEAWCS_Server/WIDESEAWCS_Server/Controllers/System/Sys_LogController.cs
@@ -0,0 +1,17 @@
+锘縰sing Microsoft.AspNetCore.Http;
+using Microsoft.AspNetCore.Mvc;
+using WIDESEAWCS_Core.BaseController;
+using WIDESEAWCS_ISystemServices;
+using WIDESEAWCS_Model.Models;
+
+namespace WIDESEAWCS_Server.Controllers.System
+{
+    [Route("api/[controller]")]
+    [ApiController]
+    public class Sys_LogController : ApiBaseController<ISys_LogService, Sys_Log>
+    {
+        public Sys_LogController(ISys_LogService service) : base(service)
+        {
+        }
+    }
+}
diff --git a/WIDESEAWCS_Server/WIDESEAWCS_Server/Properties/launchSettings.json b/WIDESEAWCS_Server/WIDESEAWCS_Server/Properties/launchSettings.json
index 37fd763..701f428 100644
--- a/WIDESEAWCS_Server/WIDESEAWCS_Server/Properties/launchSettings.json
+++ b/WIDESEAWCS_Server/WIDESEAWCS_Server/Properties/launchSettings.json
@@ -13,7 +13,6 @@
       "commandName": "Project",
       "dotnetRunMessages": true,
       "launchBrowser": true,
-      "launchUrl": "swagger",
       "applicationUrl": "http://localhost:5208",
       "environmentVariables": {
         "ASPNETCORE_ENVIRONMENT": "Development"
@@ -22,7 +21,6 @@
     "IIS Express": {
       "commandName": "IISExpress",
       "launchBrowser": true,
-      "launchUrl": "swagger",
       "environmentVariables": {
         "ASPNETCORE_ENVIRONMENT": "Development"
       }
diff --git a/WIDESEAWCS_Server/WIDESEAWCS_Server/appsettings.json b/WIDESEAWCS_Server/WIDESEAWCS_Server/appsettings.json
index 62255bb..5a38ac1 100644
--- a/WIDESEAWCS_Server/WIDESEAWCS_Server/appsettings.json
+++ b/WIDESEAWCS_Server/WIDESEAWCS_Server/appsettings.json
@@ -21,7 +21,7 @@
     // 娉ㄦ剰锛宧ttp://127.0.0.1:1818 鍜� http://localhost:1818 鏄笉涓�鏍风殑
     "IPs": "http://127.0.0.1:8080,http://localhost:8080"
   },
-  "ApiName": "WIDESEA",
+  "ApiName": "WIDESEAWCS",
   "ExpMinutes": 120,
   "QuartzJobAutoStart": true,
   "LogDeubgEnable": true,
diff --git a/WIDESEAWCS_Server/WIDESEAWCS_Server/index.html b/WIDESEAWCS_Server/WIDESEAWCS_Server/index.html
index 6e20829..155d28e 100644
--- a/WIDESEAWCS_Server/WIDESEAWCS_Server/index.html
+++ b/WIDESEAWCS_Server/WIDESEAWCS_Server/index.html
@@ -111,9 +111,9 @@
     </svg>
     <div id="swagger-ui"></div>
     <div id="footer" style="text-align: center;margin-bottom: 10px;">
-        Copyright 漏 2018-2023 BCVP寮�鍙戣�呯ぞ鍖�
+        
 
-        <br><span id="poweredby">Powered by .NET 8.0 on Docker & CentOS 7.6</span>
+        <br><span id="poweredby"></span>
     </div>
     <!-- Workaround for https://github.com/swagger-api/swagger-editor/issues/1371 -->
     <script>
diff --git a/WIDESEAWCS_Server/WIDESEAWCS_Server/wwwroot/css/swaggerdoc.css b/WIDESEAWCS_Server/WIDESEAWCS_Server/wwwroot/css/swaggerdoc.css
new file mode 100644
index 0000000..1a05ca2
--- /dev/null
+++ b/WIDESEAWCS_Server/WIDESEAWCS_Server/wwwroot/css/swaggerdoc.css
@@ -0,0 +1,109 @@
+.selectBox {
+    margin: 50px auto; /*灞呬腑*/
+    width: 150px;
+    text-align: center;
+}
+
+    .selectBox a {
+        color: #1b1b1b;
+        text-decoration: none;
+    }
+
+    .selectBox ul, .selectBox li {
+        list-style: none;
+    }
+
+    .selectBox span {
+        line-height: 46px;
+        background-color: #85ea2d;
+        display: block;
+        margin-bottom: 20px;
+        position: relative;
+        z-index: 2;
+        border-radius: 5px;
+        -webkit-transition: all .2s ease-in;
+        transition: all .2s ease-in;
+    }
+
+.drop {
+    left: 0;
+    right: 0;
+    top: -9999px;
+    box-shadow: 0 0 2px 0 rgba(0, 0, 0, 0.2);
+    border-radius: 5px;
+    position: absolute;
+    z-index: 1;
+    -webkit-transform: translateY(-50px); /*y杞存柟鍚戝钩绉�*/
+    transform: translateY(-50px);
+    opacity: 0;
+    -webkit-transition: all .2s ease-in; /*骞崇Щ鏃堕棿0.2s*/
+    transition: all .2s ease-in;
+}
+/*缁欓�佷釜涓嬫媺鍔╂敾*/
+.selectBox:hover span {
+    background-color: #74ea0d;
+}
+
+    .selectBox:hover span a:after {
+        -webkit-transform: rotate(180deg); /*鏃嬭浆180搴�*/
+        transform: rotate(180deg);
+    }
+
+.selectBox:hover .drop {
+    position: static;
+    opacity: 1;
+    -webkit-transform: translateY(0);
+    transform: translateY(0);
+}
+.drop li:first-child:before {
+    content: " ";
+    font-size: 0;
+    line-height: 0;
+    margin: 0 auto; /*灞呬腑*/
+    display: block; /*鐙崰涓�琛�*/
+    box-shadow: 0 0 2px 0 rgba(0, 0, 0, 0.2); /*閰嶅悎鏁翠綋涓�鏍风殑鎶曞奖*/
+    background-color: #fff;
+    width: 10px;
+    height: 10px;
+    -webkit-transform: rotate(45deg);
+    transform: rotate(45deg); /*涓�涓鏂瑰舰鍊炬枩鍥涘崄浜斿害灏辨槸涓夎浜嗕絾鏄鎶婁笅鍗婇儴鍒嗚棌璧锋潵*/
+    position: relative;
+    top: -5px; /*鏋滄柇鐨勯湶鍑轰笂鍗婇儴鍒�*/
+    z-index: 1; /*鏋滄柇鐨勯殣钘忎笅鍗婇儴鍒�*/
+    -webkit-transition: all .2s ease-in;
+    transition: all .2s ease-in;
+}
+
+.drop li a {
+    color: #888;
+    line-height: 46px;
+    border-bottom: solid 1px #eee;
+    font-size: 14px;
+    display: block;
+    background-color: #fff; /*瑕佹湁鑳屾櫙鑹叉墠鑳界洊浣忓憖*/
+    position: relative;
+    z-index: 2; /*杩欓噷寰堥噸瑕� 瑕佹尅浣忎笁瑙掑舰鐨勪笅鍗婇儴鍒�*/
+    -webkit-transition: all .2s ease-in;
+    transition: all .2s ease-in;
+}
+.drop li:first-child a {
+    border-top-left-radius: 5px;
+    border-top-right-radius: 5px;
+    margin-top: -10px;
+}
+
+.drop li:last-child a {
+    border-bottom-left-radius: 5px;
+    border-bottom-right-radius: 5px;
+    border-bottom: none;
+}
+.drop li:hover:before {
+    background-color: #85ea2d;
+}
+
+.drop li:hover a {
+    background-color: #85ea2d;
+    color: #fff;
+}
+
+
diff --git a/WIDESEAWCS_Server/WIDESEAWCS_Server/wwwroot/js/swaggerdoc.js b/WIDESEAWCS_Server/WIDESEAWCS_Server/wwwroot/js/swaggerdoc.js
new file mode 100644
index 0000000..bbba38b
--- /dev/null
+++ b/WIDESEAWCS_Server/WIDESEAWCS_Server/wwwroot/js/swaggerdoc.js
@@ -0,0 +1,139 @@
+锘縱ar exten = "";//涓嬭浇鏂囦欢鍚庣紑鍚�
+var timerLoadExportBtn = null;
+$(document).delegate("#select", "change", function () {
+    debugger
+    setTimeout("LoadExportApiWordBtn()", 300);//鍔犺浇瀵煎嚭鎸夐挳
+    console.log("dom export ok");
+});
+
+$(document).ready(function () {
+    InitLoad();//鍒濆鍖栧鍑�
+    //loading璁剧疆
+    $.busyLoadSetup({
+        animation: "slide",
+        background: "rgba(255, 152, 0, 0.86)"
+    });
+});
+
+//鍒濆鍖�
+function InitLoad() {
+    setTimeout("LoadExportApiWordBtn()", 300);//鍔犺浇瀵煎嚭鎸夐挳
+}
+
+//鍔犺浇鑷畾涔夊鍑烘寜閽�
+function LoadExportApiWordBtn() {
+    $(".information-container").height(240);//鏂囨。浠嬬粛鍖哄煙楂樺害
+    $(".topbar").height(35);
+    var btnExport = "<div class='selectBox' style='position: absolute;margin: 0;padding: 0;margin-left: 1432px;top: 2.5px;'>" +
+        "<span><a href='javascript:void(0);'>瀵煎嚭绂荤嚎鏂囨。</a></span>" +
+        "<div class='drop'>" +
+        "<ul style='margin: 0;padding: 0;'>" +
+        //"<li>" +
+        //"<a href='javascript:void(0);' onclick='ExportApiWord(1)'>瀵煎嚭 Word</a>" +
+        //"</li>" +
+        //"<li>" +
+        //"<a href='javascript:void(0);' onclick='ExportApiWord(2)'>瀵煎嚭 PDF</a>" +
+        //"</li>" +
+        "<li>" +
+        "<a href='javascript:void(0);' onclick='ExportApiWord(3)'>瀵煎嚭 Html</a>" +
+        "</li >" +
+        //"<li>" +
+        //"<a href='javascript:void(0);' onclick='ExportApiWord(4)'>瀵煎嚭 Xml</a>" +
+        //"</li >" +
+        //"<li>" +
+        //"<a href='javascript:void(0);' onclick='ExportApiWord(5)'>瀵煎嚭 Svg</a>" +
+        //"</li >" +
+        "</ul >" +
+        "</div >" +
+        "</div >";
+    //information-container杩欎釜鍏冪礌鏄痵wagger鍚庢湡鍔ㄦ�佹覆鏌撳嚭鏉ョ殑锛屾墍鏈夎繖閲岃鍔犱釜寰幆鍒ゆ柇銆�
+    //绗竴娆¤繘鏉ュ鏋滄湁杩欎釜class鐩存帴鍔犺浇鎸夐挳閫�鍑�
+    if ($("*").hasClass("information-container")) {
+        $(".information-container").append(btnExport);
+        return;
+    }
+    //娌℃湁鍏冪礌绛夊緟鍏冪礌鍑虹幇鍦ㄥ姞杞芥寜閽�
+    timerLoadExportBtn = setInterval(function () {
+        if ($("*").hasClass("information-container")) {
+            $(".information-container").append(btnExport);
+            console.log("load ok");
+            window.clearInterval(timerLoadExportBtn);
+            return;
+        }
+        console.log("loading");
+    }, 788);
+}
+
+
+/**
+ * 寤惰繜鍑芥暟
+ * @param {any} delay
+ */
+function sleep(delay) {
+    var start = (new Date()).getTime();
+    while ((new Date()).getTime() - start < delay) {
+        continue;
+    }
+}
+
+/*
+ * 瀵煎嚭
+ */
+function ExportApiWord(type) {
+    switch (type) {
+        case 1:
+            exten = ".docx";
+            break;
+        case 2:
+            exten = ".pdf";
+            break;
+        case 3:
+            exten = ".html";
+            break;
+        case 4:
+            exten = ".xml";
+            break;
+        case 5:
+            exten = ".svg";
+            break;
+    }
+    var version = $("#select option:selected").val();
+    version = version.split('/')[2];
+    var url = '/api/Swagger/ExportWord?type=' + exten + "&version=" + version;
+    var xhr = new XMLHttpRequest();
+    xhr.open('GET', url, true);    // 涔熷彲浠ヤ娇鐢≒OST鏂瑰紡锛屾牴鎹帴鍙�
+    xhr.responseType = "blob";  // 杩斿洖绫诲瀷blob
+    // 瀹氫箟璇锋眰瀹屾垚鐨勫鐞嗗嚱鏁帮紝璇锋眰鍓嶄篃鍙互澧炲姞鍔犺浇妗�/绂佺敤涓嬭浇鎸夐挳閫昏緫
+    xhr.onload = function () {
+        // 璇锋眰瀹屾垚
+        if (this.status === 200) {
+            // 杩斿洖200
+            var blob = this.response;
+            var reader = new FileReader();
+            reader.readAsDataURL(blob); // 杞崲涓篵ase64锛屽彲浠ョ洿鎺ユ斁鍏琛ㄦ儏href
+            reader.onload = function(e) {
+                // 杞崲瀹屾垚锛屽垱寤轰竴涓猘鏍囩鐢ㄤ簬涓嬭浇
+                var a = document.createElement('a');
+                a.download = 'WIDESEAWCS API鏂囨。 ' + version + exten;
+                a.href = e.target.result;
+                $("body").append(a); // 淇firefox涓棤娉曡Е鍙慶lick
+                a.click();
+                $(a).remove();
+            }
+        } else {
+            alert(this.status+this.statusText);
+        }
+        //鍏抽棴load
+        $.busyLoadFull('hide',
+            {
+                animation: "fade"
+            });
+    };
+    // 鍙戦�乤jax璇锋眰
+    xhr.send();
+    //鎵撳紑loader閬僵
+    $.busyLoadFull('show', {
+        text: "LOADING ...",
+        animation: "fade"
+    });
+}
diff --git a/WIDESEAWCS_Server/WIDESEAWCS_SystemRepository/Sys_LogRepository.cs b/WIDESEAWCS_Server/WIDESEAWCS_SystemRepository/Sys_LogRepository.cs
new file mode 100644
index 0000000..f61053e
--- /dev/null
+++ b/WIDESEAWCS_Server/WIDESEAWCS_SystemRepository/Sys_LogRepository.cs
@@ -0,0 +1,18 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using WIDESEAWCS_Core.BaseRepository;
+using WIDESEAWCS_ISystemRepository;
+using WIDESEAWCS_Model.Models;
+
+namespace WIDESEAWCS_SystemRepository
+{
+    public class Sys_LogRepository : RepositoryBase<Sys_Log>, ISys_LogRepository
+    {
+        public Sys_LogRepository(IUnitOfWorkManage unitOfWorkManage) : base(unitOfWorkManage)
+        {
+        }
+    }
+}
diff --git a/WIDESEAWCS_Server/WIDESEAWCS_SystemServices/Sys_DictionaryService.cs b/WIDESEAWCS_Server/WIDESEAWCS_SystemServices/Sys_DictionaryService.cs
index e04fe7a..8f68362 100644
--- a/WIDESEAWCS_Server/WIDESEAWCS_SystemServices/Sys_DictionaryService.cs
+++ b/WIDESEAWCS_Server/WIDESEAWCS_SystemServices/Sys_DictionaryService.cs
@@ -40,7 +40,7 @@
             List<string> cacheDicNos = new List<string>();
             foreach (string n in dicNos)
             {
-                string str = _cacheService.Get(n);
+                string? str = _cacheService.Get(n);
                 if (!string.IsNullOrEmpty(str))
                 {
                     VueDictionaryDTO? vueDictionary = JsonConvert.DeserializeObject<VueDictionaryDTO>(str);
diff --git a/WIDESEAWCS_Server/WIDESEAWCS_SystemServices/Sys_LogService.cs b/WIDESEAWCS_Server/WIDESEAWCS_SystemServices/Sys_LogService.cs
new file mode 100644
index 0000000..fdb3067
--- /dev/null
+++ b/WIDESEAWCS_Server/WIDESEAWCS_SystemServices/Sys_LogService.cs
@@ -0,0 +1,19 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using WIDESEAWCS_Core.BaseServices;
+using WIDESEAWCS_ISystemRepository;
+using WIDESEAWCS_ISystemServices;
+using WIDESEAWCS_Model.Models;
+
+namespace WIDESEAWCS_SystemServices
+{
+    public class Sys_LogService : ServiceBase<Sys_Log, ISys_LogRepository>, ISys_LogService
+    {
+        public Sys_LogService(ISys_LogRepository BaseDal) : base(BaseDal)
+        {
+        }
+    }
+}
diff --git a/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/TaskService.cs b/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/TaskService.cs
index 53676e6..911d6f0 100644
--- a/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/TaskService.cs
+++ b/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/TaskService.cs
@@ -16,27 +16,17 @@
 #endregion << 鐗� 鏈� 娉� 閲� >>
 
 using AutoMapper;
-using OfficeOpenXml.FormulaParsing.Excel.Functions.Text;
 using SqlSugar;
-using System;
-using System.Collections.Generic;
-using System.ComponentModel;
 using System.Diagnostics.CodeAnalysis;
-using System.Linq;
-using System.Reflection;
-using System.Text;
-using System.Threading.Tasks;
 using WIDESEAWCS_Common.TaskEnum;
 using WIDESEAWCS_Core;
 using WIDESEAWCS_Core.BaseServices;
-using WIDESEAWCS_Core.Enums;
 using WIDESEAWCS_DTO.TaskInfo;
 using WIDESEAWCS_ITaskInfoRepository;
 using WIDESEAWCS_ITaskInfoService;
 using WIDESEAWCS_Model.Models;
 using WIDESEAWCS_QuartzJob.Models;
 using WIDESEAWCS_QuartzJob.Service;
-using WIDESEAWCS_Common.TaskEnum;
 
 namespace WIDESEAWCS_TaskInfoService
 {

--
Gitblit v1.9.3