Kaynağa Gözat

mxg:修改文件类型错误时报错

mengxiangge 5 yıl önce
ebeveyn
işleme
e572aa6903

+ 3 - 1
Executer/DataExport/RevitToJBim/MbiExport.cs

@@ -16,6 +16,7 @@ using RevitExport.Export;
 using RevitToJBim.ComponentParse;
 using RevitToJBim.JsonConverter;
 using RevitToJBim.MBI;
+using SAGA.DotNetUtils.Logger;
 using ServiceRevitLib.Mode;
 
 namespace RevitToJBim
@@ -48,9 +49,10 @@ namespace RevitToJBim
                 string path = Path.Combine($"{document.PathName}_{fileName}.json");
                 File.WriteAllText(path, json.ToString());
 #endif
+                Log4Net.Info("Begin UploadExportFile");
                 var resultResponse = UploadService.UploadExportFile(json);
                 result = BimJsonUtil.Serializer((ResultBase)resultResponse);
-
+                Log4Net.Info("End UploadExportFile");
 
             }
             catch (Exception ex)

+ 4 - 0
Executer/MBIRevitBase/MBIRevitBase.csproj

@@ -37,6 +37,10 @@
     <Reference Include="Polly, Version=7.0.0.0, Culture=neutral, PublicKeyToken=c8a3ffc3f8f825cc, processorArchitecture=MSIL">
       <HintPath>..\..\packages\Polly.7.1.1\lib\netstandard2.0\Polly.dll</HintPath>
     </Reference>
+    <Reference Include="SAGA.DotNetUtils, Version=1.0.0.0, Culture=neutral, processorArchitecture=MSIL">
+      <SpecificVersion>False</SpecificVersion>
+      <HintPath>..\..\RevitDlls\SAGA.DotNetUtils.dll</HintPath>
+    </Reference>
     <Reference Include="System" />
     <Reference Include="System.Configuration" />
     <Reference Include="System.Core" />

+ 5 - 4
Executer/MBIRevitBase/Services/UploadService.cs

@@ -15,6 +15,7 @@ using MBIRevitBase.Config;
 using MBIRevitBase.Tools;
 using Polly;
 using Polly.Retry;
+using SAGA.DotNetUtils.Logger;
 
 namespace MBIRevitBase.Services
 {
@@ -36,7 +37,7 @@ namespace MBIRevitBase.Services
         {
             var stream = ZipUtils.ZipString(result, "export.json");
             var url = ApiConfig.AlgorithmUrl();
-            Console.WriteLine("BeginUploadData");
+            
             return HttpUtils.PostFormDataFileThrowException(url, stream) as T;
         }
 
@@ -49,19 +50,19 @@ namespace MBIRevitBase.Services
                     (i, t) => TimeSpan.FromSeconds(5), ReportError);
 #else
                 var waitAndRetryPolicy = Policy.Handle<Exception>().WaitAndRetry(4,
-                    (i, t) => TimeSpan.FromSeconds(5*60), ReportError);
+                    (i, t) => TimeSpan.FromSeconds(1*60), ReportError);
 #endif
                 return waitAndRetryPolicy.Execute<BResult>(()=> UploadExportFileRetry<BResult>(result));
             }
             catch (Exception e)
             {
-                Console.WriteLine($"Execute failed,Message:{e.Message}");
+                Log4Net.Debug($"Execute failed,Message:{e.Message}");
                 return e.Message;
             }
         }
         static void ReportError(Exception e, TimeSpan timeSpan, int intento, Context context)
         {
-            Console.WriteLine($"异常{intento:00} <调用秒数:{timeSpan.Seconds} 秒>\t 执行时间:{DateTime.Now}");
+            Log4Net.Debug($"异常{intento:00} <调用秒数:{timeSpan.Seconds} 秒>\t 执行时间:{DateTime.Now}");
         }
     }
 }

+ 17 - 16
Executer/MBIRevitBase/Tools/HttpUtils.cs

@@ -32,7 +32,7 @@ namespace MBIRevitBase.Tools
             return m_Client;
         }
         public const string WebKitFormBoundary = "----WebKitFormBoundary";
-        public static BResult PostFormDataFile(string url,Stream stream)
+        public static BResult PostFormDataFile(string url, Stream stream)
         {
             using (HttpClient client = CreateClient())
             {
@@ -41,7 +41,7 @@ namespace MBIRevitBase.Tools
                 #region Stream请求
                 var streamContent = new StreamContent(stream);
                 //"file.zip"必须有,它的格式可能影响到内部的一些配置
-                content.Add(streamContent, "file","file.zip");
+                content.Add(streamContent, "file", "file.zip");
                 #endregion
                 var result = client.PostAsync(url, content).Result;
                 try
@@ -49,7 +49,7 @@ namespace MBIRevitBase.Tools
                     if (result.IsSuccessStatusCode)
                     {
                         string rslt = result.Content.ReadAsStringAsync().Result;
-                        return new BResult(true,rslt);
+                        return new BResult(true, rslt);
                     }
                     else
                     {
@@ -61,7 +61,7 @@ namespace MBIRevitBase.Tools
                     client.Dispose();
                 }
             }
-            return string.Empty;        
+            return string.Empty;
 
         }
         /// <summary>
@@ -74,20 +74,21 @@ namespace MBIRevitBase.Tools
         {
             using (HttpClient client = CreateClient())
             {
-                //超时时间设置为5分钟
-                client.Timeout = new TimeSpan(0,30,0);
-                string boundary = string.Format("{0}{1}", WebKitFormBoundary, DateTime.Now.Ticks.ToString("x"));
-                MultipartFormDataContent content = new MultipartFormDataContent(boundary);
-                #region Stream请求
-                var streamContent = new StreamContent(stream);
-                //"file.zip"必须有,它的格式可能影响到内部的一些配置
-                content.Add(streamContent, "file", "file.zip");
-                #endregion
-
-                var tt = client.PostAsync(url, content);
-                var result = tt.Result;
                 try
                 {
+                    //超时时间设置为30分钟
+                    client.Timeout = new TimeSpan(0, 30, 0);
+                    string boundary = string.Format("{0}{1}", WebKitFormBoundary, DateTime.Now.Ticks.ToString("x"));
+                    MultipartFormDataContent content = new MultipartFormDataContent(boundary);
+                    #region Stream请求
+                    var streamContent = new StreamContent(stream);
+                    //"file.zip"必须有,它的格式可能影响到内部的一些配置
+                    content.Add(streamContent, "file", "file.zip");
+                    #endregion
+
+                    var tt = client.PostAsync(url, content);
+                    var result = tt.Result;
+
                     if (result.IsSuccessStatusCode)
                     {
                         string rslt = result.Content.ReadAsStringAsync().Result;

BIN
RevitDlls/SAGA.DotNetUtils.dll


+ 1 - 1
Starter/Starter/Logger/log4net.config

@@ -7,7 +7,7 @@
   <log4net>
     <appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender">
       <!--日志路径-->
-      <param name= "File" value= "App_Log/"/>
+      <param name= "File" value= "D:\App_Log\"/>
       <!--是否是向文件中追加日志-->
       <param name= "AppendToFile" value= "true"/>
       <!--log保留天数-->

+ 31 - 22
Starter/Starter/Program.cs

@@ -42,7 +42,7 @@ namespace ExportStart
                 path = @"E:\导出测试\testSpace.rvt";
                 path = @"E:\导出测试\系统图修改编码版\给排水系统图模型第一版V1129.rvt";
                 path = @"C:\Users\SAGACLOUD\Desktop\新建文件夹\b1-2172005.rvt";
-                JObject jObject=new JObject();
+                JObject jObject = new JObject();
                 jObject.Add("ResultFileName", @"C:\Users\SAGACLOUD\AppData\Local\RevitService\Result_e26be2fd-2097-462b-bdd0-a2a86b616928.txt");
                 param = jObject.ToString();
 
@@ -55,28 +55,37 @@ namespace ExportStart
             {
                 Log4Net.Debug("命令参数错误");
             }
-            Console.WriteLine(command);
-            Console.WriteLine(path);
+            Log4Net.Info(command);
+            Log4Net.Info(path);
             if (File.Exists(path) && Enum.TryParse(command, out CommandType commandType))
             {
                 var app = RevitCoreContext.Instance.Application;
-                var doc = app.OpenDocumentFile(path);
                 string result = null;
-                Console.WriteLine("StartTime:"+DateTime.Now);
-                switch (commandType)
+                Console.WriteLine("Task StartTime:" + DateTime.Now);
+                try
                 {
-                    case CommandType.DataCheck:
-                        result=Check(doc,param);
-                        break;
-                    case CommandType.DataExport:
-                        result=Export(doc,param);
-                        break;
+                    var doc = app.OpenDocumentFile(path);
+                    switch (commandType)
+                    {
+                        case CommandType.DataCheck:
+                            result = Check(doc, param);
+                            break;
+                        case CommandType.DataExport:
+                            result = Export(doc, param);
+                            break;
+                    }
+                }
+                catch (Exception e)
+                {
+                    JObject errorJObject = new JObject();
+                    errorJObject.Add("ResultMsg", e.Message);
+                    errorJObject.Add("Result", "Failure");
+                    result = errorJObject.ToString();
                 }
                 SaveResult(param, result);
-                Console.WriteLine("EndTime:"+DateTime.Now);
+                Console.WriteLine("Task EndTime:" + DateTime.Now);
                 RevitCoreContext.Instance.Stop();
             }
-            Console.WriteLine("ExportStart End");
             //强制退出
             Environment.Exit(0);
         }
@@ -92,21 +101,21 @@ namespace ExportStart
             try
             {
 
-                JObject jObject  = JObject.Parse(param);
+                JObject jObject = JObject.Parse(param);
                 string key = "ResultFileName";
                 string path = jObject[key].ToString();
                 if (path.IsNotNullEmpty())
                 {
                     Console.WriteLine(path);
-                    var  dir = Directory.GetParent(path);
-                    if(!dir.Exists)
+                    var dir = Directory.GetParent(path);
+                    if (!dir.Exists)
                         dir.Create();
                     File.AppendAllText(path, result);
                 }
             }
             catch (Exception e)
             {
-                Console.WriteLine(e);
+                Log4Net.Debug(e.StackTrace);
             }
         }
 
@@ -118,13 +127,13 @@ namespace ExportStart
         }
 
 
-        public static string Export(Document doc,string param)
+        public static string Export(Document doc, string param)
         {
             string result = null;
             try
             {
                 Console.WriteLine("Start Export");
-                result=RevitToJBim.MbiExport.Export(doc,param);
+                result = RevitToJBim.MbiExport.Export(doc, param);
 
                 Console.WriteLine("End Export");
             }
@@ -138,13 +147,13 @@ namespace ExportStart
         }
 
 
-        public static string Check(Document doc,string param)
+        public static string Check(Document doc, string param)
         {
             string result = null;
             try
             {
                 Console.WriteLine("Start DataCheck");
-                result=ServiceDataCheckTest.Check(doc);
+                result = ServiceDataCheckTest.Check(doc);
 
                 Console.WriteLine("End DataCheck");
             }