init commit all code
This commit is contained in:
BIN
93_nei/.vs/Getf.Service.Transfer.Client.WinService/v16/.suo
Normal file
BIN
93_nei/.vs/Getf.Service.Transfer.Client.WinService/v16/.suo
Normal file
Binary file not shown.
@@ -0,0 +1,62 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
|
||||
<PropertyGroup>
|
||||
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
|
||||
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
|
||||
<ProjectGuid>{392104F4-B3C8-49F6-88F0-D84A26F49661}</ProjectGuid>
|
||||
<OutputType>Library</OutputType>
|
||||
<AppDesignerFolder>Properties</AppDesignerFolder>
|
||||
<RootNamespace>Getf.Service.Transfer.Client.WinService.HttpHandler</RootNamespace>
|
||||
<AssemblyName>Getf.Service.Transfer.Client.WinService.HttpHandler</AssemblyName>
|
||||
<TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
|
||||
<FileAlignment>512</FileAlignment>
|
||||
<Deterministic>true</Deterministic>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
|
||||
<DebugSymbols>true</DebugSymbols>
|
||||
<DebugType>full</DebugType>
|
||||
<Optimize>false</Optimize>
|
||||
<OutputPath>bin\Debug\</OutputPath>
|
||||
<DefineConstants>DEBUG;TRACE</DefineConstants>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<WarningLevel>4</WarningLevel>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
|
||||
<DebugType>pdbonly</DebugType>
|
||||
<Optimize>true</Optimize>
|
||||
<OutputPath>bin\Release\</OutputPath>
|
||||
<DefineConstants>TRACE</DefineConstants>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<WarningLevel>4</WarningLevel>
|
||||
</PropertyGroup>
|
||||
<ItemGroup>
|
||||
<Reference Include="Newtonsoft.Json, Version=12.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\Newtonsoft.Json.12.0.1\lib\net40\Newtonsoft.Json.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="System" />
|
||||
<Reference Include="System.Core" />
|
||||
<Reference Include="System.Xml.Linq" />
|
||||
<Reference Include="System.Data.DataSetExtensions" />
|
||||
<Reference Include="Microsoft.CSharp" />
|
||||
<Reference Include="System.Data" />
|
||||
<Reference Include="System.Xml" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Compile Include="HttpByte\HttpByteHandler.cs" />
|
||||
<Compile Include="HttpDataHandler.cs" />
|
||||
<Compile Include="HttpJsonDataHandler.cs" />
|
||||
<Compile Include="HttpService.cs" />
|
||||
<Compile Include="Properties\AssemblyInfo.cs" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ProjectReference Include="..\Getf.Service.Transfer.Client.WinService\Getf.Service.Transfer.Client.WinService.csproj">
|
||||
<Project>{41181ed6-f47d-485e-a8f1-b2bdb52dc902}</Project>
|
||||
<Name>Getf.Service.Transfer.Client.WinService</Name>
|
||||
</ProjectReference>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<None Include="packages.config" />
|
||||
</ItemGroup>
|
||||
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
|
||||
</Project>
|
||||
@@ -0,0 +1,200 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Collections.Specialized;
|
||||
using System.IO;
|
||||
using System.Linq;
|
||||
using System.Net;
|
||||
using System.Reflection;
|
||||
using System.Text;
|
||||
using Getf.Service.Transfer.Client.WinService.Entities;
|
||||
using Getf.Service.Transfer.Client.WinService.Helpers;
|
||||
using Newtonsoft.Json;
|
||||
using Newtonsoft.Json.Linq;
|
||||
|
||||
namespace Getf.Service.Transfer.Client.WinService.HttpHandler.HttpByte
|
||||
{
|
||||
public class HttpByteHandler : IDataHandler
|
||||
{
|
||||
LogHelper _LogHelper;
|
||||
|
||||
public TransInfo HandlerData(TransInfo srcData)
|
||||
{
|
||||
var r = new TransInfo();
|
||||
var action = srcData.Body.Action;
|
||||
if (String.IsNullOrWhiteSpace(action))
|
||||
{
|
||||
r.TransResultInfo = GetResult(-320, "Action(url|method)参数不能为空");
|
||||
return r;
|
||||
}
|
||||
var url = action;
|
||||
|
||||
var jsonStr = String.IsNullOrWhiteSpace(srcData.Body.Param) ? "{}" : srcData.Body.Param;
|
||||
var jObject = JsonConvert.DeserializeObject<JObject>(jsonStr);
|
||||
|
||||
var rData = DoRequest(url, jObject, srcData.Data, out string msg, out int htttpStatusCode);
|
||||
if (rData == null)
|
||||
{
|
||||
r.TransResultInfo = new TransResult()
|
||||
{
|
||||
Code = htttpStatusCode,
|
||||
Message = msg
|
||||
};
|
||||
return r;
|
||||
}
|
||||
|
||||
r.TransResultInfo = new TransResult()
|
||||
{
|
||||
Code = htttpStatusCode,
|
||||
Message = msg
|
||||
};
|
||||
r.Data = rData;
|
||||
return r;
|
||||
}
|
||||
|
||||
private TransResult GetResult(int code, string message)
|
||||
{
|
||||
return new TransResult()
|
||||
{
|
||||
Code = code,
|
||||
Message = message
|
||||
};
|
||||
}
|
||||
|
||||
|
||||
|
||||
public byte[] DoRequest(string url, JObject jObject, byte[] data, out string msg, out int httpStatusCode)
|
||||
{
|
||||
try
|
||||
{
|
||||
Encoding encoding = new UTF8Encoding(false);
|
||||
if (jObject["Encoding"] != null)
|
||||
{
|
||||
encoding = Encoding.GetEncoding(jObject["Encoding"].Value<string>());
|
||||
}
|
||||
var method = "POST";
|
||||
if (jObject["Method"] != null)
|
||||
{
|
||||
method = jObject["Method"].Value<string>();
|
||||
}
|
||||
|
||||
|
||||
HttpWebRequest httpWebRequest = WebRequest.Create(url) as HttpWebRequest;
|
||||
var bodyIndex = GetBodyIndex(data);
|
||||
var headStr = encoding.GetString(data.Take(bodyIndex).ToArray());
|
||||
|
||||
var bodyData = data.Skip(bodyIndex)/*.Select(m => (char)m)*/.ToArray();
|
||||
|
||||
SetHead(httpWebRequest, method, headStr);
|
||||
|
||||
byte[] r;
|
||||
if (!"GET".Equals(method, StringComparison.OrdinalIgnoreCase))
|
||||
{
|
||||
var requestStream = httpWebRequest.GetRequestStream();
|
||||
requestStream.Write(bodyData, 0, bodyData.Length);
|
||||
r = GetResponse(httpWebRequest, encoding);
|
||||
requestStream.Close();
|
||||
requestStream.Dispose();
|
||||
}
|
||||
else
|
||||
{
|
||||
r = GetResponse(httpWebRequest, encoding);
|
||||
}
|
||||
msg = String.Empty;
|
||||
httpStatusCode = 200;
|
||||
return r;
|
||||
}
|
||||
catch (WebException e)
|
||||
{
|
||||
using (var stream = e?.Response?.GetResponseStream())
|
||||
{
|
||||
httpStatusCode = (int?)((System.Net.HttpWebResponse)(e?.Response))?.StatusCode ?? 500;
|
||||
if (stream != null)
|
||||
{
|
||||
using (StreamReader streamReader = new StreamReader(stream))
|
||||
{
|
||||
msg = streamReader.ReadToEnd();
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
msg = e.Message;
|
||||
}
|
||||
}
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
httpStatusCode = 500;
|
||||
msg = e.Message;
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
|
||||
private int GetBodyIndex(byte[] data)
|
||||
{
|
||||
var index = -1;
|
||||
for (int i = 0, c = data.Length; i < c; i++)
|
||||
{
|
||||
var elem = data[i];
|
||||
if (elem == '\r' && i + 3 < data.Length && data[i + 1] == '\n' && data[i + 2] == '\r' && data[i + 3] == '\n')
|
||||
{
|
||||
index = i + 4;
|
||||
break;
|
||||
}
|
||||
}
|
||||
return index;
|
||||
}
|
||||
|
||||
private static PropertyInfo InnerCollectionProperty = typeof(WebHeaderCollection).GetProperty("InnerCollection",
|
||||
System.Reflection.BindingFlags.Instance | System.Reflection.BindingFlags.NonPublic);
|
||||
|
||||
public static void SetHeaderValue(WebHeaderCollection header, string name, string value)
|
||||
{
|
||||
var collection = InnerCollectionProperty.GetValue(header, null) as NameValueCollection;
|
||||
collection[name] = value;
|
||||
}
|
||||
|
||||
private void SetHead(HttpWebRequest httpWebRequest, string method, string headStr)
|
||||
{
|
||||
httpWebRequest.Method = method;
|
||||
var headStrSplitResult = headStr.Split(new String[] { "\r\n" }, StringSplitOptions.RemoveEmptyEntries);
|
||||
foreach (var elem in headStrSplitResult)
|
||||
{
|
||||
var keyValue = elem.Split(':');
|
||||
var name = keyValue[0];
|
||||
var value = keyValue[1];
|
||||
if ("Accept-Encoding".Equals(name, StringComparison.OrdinalIgnoreCase))
|
||||
{
|
||||
httpWebRequest.AutomaticDecompression = DecompressionMethods.GZip;
|
||||
}
|
||||
SetHeaderValue(httpWebRequest.Headers, name, value);
|
||||
}
|
||||
/*if ("post".Equals(method, StringComparison.OrdinalIgnoreCase))
|
||||
{
|
||||
if (String.IsNullOrWhiteSpace(httpWebRequest.ContentType))
|
||||
{
|
||||
httpWebRequest.ContentType = "application/x-www-form-urlencoded";
|
||||
}
|
||||
}*/
|
||||
}
|
||||
|
||||
private byte[] GetResponse(HttpWebRequest httpWebRequest, Encoding encoding)
|
||||
{
|
||||
var response = httpWebRequest.GetResponse();
|
||||
response.Headers.ToByteArray();
|
||||
|
||||
using (var stream = response.GetResponseStream())
|
||||
{
|
||||
using (MemoryStream ms = new MemoryStream())
|
||||
{
|
||||
stream.CopyTo(ms);
|
||||
var r = new List<byte>();
|
||||
r.AddRange(response.Headers.ToByteArray());
|
||||
//r.AddRange(encoding.GetBytes("\r\n"));
|
||||
r.AddRange(ms.ToArray());
|
||||
return r.ToArray();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,62 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using Getf.Service.Transfer.Client.WinService.Entities;
|
||||
using Newtonsoft.Json;
|
||||
using Newtonsoft.Json.Linq;
|
||||
|
||||
namespace Getf.Service.Transfer.Client.WinService.HttpHandler
|
||||
{
|
||||
public class HttpDataHandler : IDataHandler
|
||||
{
|
||||
public TransInfo HandlerData(TransInfo srcData)
|
||||
{
|
||||
var r = new TransInfo();
|
||||
var action = srcData.Body.Action;
|
||||
if (String.IsNullOrWhiteSpace(action))
|
||||
{
|
||||
r.TransResultInfo = GetResult(-320, "Action(url|method)参数不能为空");
|
||||
return r;
|
||||
}
|
||||
var url = action;
|
||||
HttpService httpService = new HttpService();
|
||||
var jsonStr = String.IsNullOrWhiteSpace(srcData.Body.Param) ? "{}" : srcData.Body.Param;
|
||||
var rData = httpService.DoRequest(url, JsonConvert.DeserializeObject<JObject>(jsonStr), out string msg);
|
||||
if (rData == null)
|
||||
{
|
||||
r.TransResultInfo = new TransResult()
|
||||
{
|
||||
Code = -301,
|
||||
Message = msg
|
||||
};
|
||||
return r;
|
||||
}
|
||||
if (rData is string)
|
||||
{
|
||||
r.TransResultInfo = new TransResult()
|
||||
{
|
||||
Code = 0,
|
||||
Message = (string)rData
|
||||
};
|
||||
return r;
|
||||
}
|
||||
|
||||
r.TransResultInfo = new TransResult()
|
||||
{
|
||||
Code = 0
|
||||
};
|
||||
r.Data = (byte[])rData;
|
||||
return r;
|
||||
}
|
||||
|
||||
private TransResult GetResult(int code, string message)
|
||||
{
|
||||
return new TransResult()
|
||||
{
|
||||
Code = code,
|
||||
Message = message
|
||||
};
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,62 @@
|
||||
using Getf.Service.Transfer.Client.WinService.Entities;
|
||||
using Newtonsoft.Json;
|
||||
using Newtonsoft.Json.Linq;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
|
||||
namespace Getf.Service.Transfer.Client.WinService.HttpHandler
|
||||
{
|
||||
public class HttpJsonDataHandler : IDataHandler
|
||||
{
|
||||
public TransInfo HandlerData(TransInfo srcData)
|
||||
{
|
||||
var r = new TransInfo();
|
||||
var action = srcData.Body.Action;
|
||||
if (String.IsNullOrWhiteSpace(action))
|
||||
{
|
||||
r.TransResultInfo = GetResult(-320, "Action(url|method)参数不能为空");
|
||||
return r;
|
||||
}
|
||||
var url = action;
|
||||
HttpService httpService = new HttpService();
|
||||
var jsonStr = String.IsNullOrWhiteSpace(srcData.Body.Param) ? "{}" : srcData.Body.Param;
|
||||
var rData = httpService.DoRequest(url, JsonConvert.DeserializeObject<JObject>(jsonStr), out string msg);
|
||||
if (rData == null)
|
||||
{
|
||||
r.TransResultInfo = new TransResult()
|
||||
{
|
||||
Code = -301,
|
||||
Message = msg
|
||||
};
|
||||
return r;
|
||||
}
|
||||
if (rData is string)
|
||||
{
|
||||
r.TransResultInfo = new TransResult()
|
||||
{
|
||||
Code = 0,
|
||||
Message = (string)rData
|
||||
};
|
||||
return r;
|
||||
}
|
||||
|
||||
r.TransResultInfo = new TransResult()
|
||||
{
|
||||
Code = 0
|
||||
};
|
||||
r.Data = (byte[])rData;
|
||||
return r;
|
||||
}
|
||||
|
||||
private TransResult GetResult(int code, string message)
|
||||
{
|
||||
return new TransResult()
|
||||
{
|
||||
Code = code,
|
||||
Message = message
|
||||
};
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,166 @@
|
||||
using Getf.Service.Transfer.Client.WinService.Helpers;
|
||||
using Newtonsoft.Json.Linq;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Collections.Specialized;
|
||||
using System.IO;
|
||||
using System.Linq;
|
||||
using System.Net;
|
||||
using System.Reflection;
|
||||
using System.Text;
|
||||
|
||||
namespace Getf.Service.Transfer.Client.WinService.HttpHandler
|
||||
{
|
||||
public class HttpService
|
||||
{
|
||||
LogHelper _LogHelper;
|
||||
|
||||
public HttpService()
|
||||
{
|
||||
_LogHelper = new LogHelper();
|
||||
}
|
||||
|
||||
public object DoRequest(string url, JObject jObject, out string msg)
|
||||
{
|
||||
|
||||
try
|
||||
{
|
||||
HttpWebRequest httpWebRequest = WebRequest.Create(url) as HttpWebRequest;
|
||||
|
||||
var head = jObject["Head"];
|
||||
Encoding encoding = new UTF8Encoding(false);
|
||||
if (jObject["Encoding"] != null)
|
||||
{
|
||||
encoding = Encoding.GetEncoding(jObject["Encoding"].Value<string>());
|
||||
}
|
||||
if (jObject["ContentType"] != null)
|
||||
{
|
||||
httpWebRequest.ContentType = jObject["ContentType"].Value<string>();
|
||||
}
|
||||
var method = "POST";
|
||||
if (jObject["Method"] != null)
|
||||
{
|
||||
method = jObject["Method"].Value<string>();
|
||||
}
|
||||
|
||||
SetHead(httpWebRequest, method, head);
|
||||
|
||||
object r;
|
||||
if (!"GET".Equals(method, StringComparison.OrdinalIgnoreCase))
|
||||
{
|
||||
var requestStream = httpWebRequest.GetRequestStream();
|
||||
SetRequestStream(httpWebRequest, requestStream, jObject, encoding);
|
||||
r = GetResponse(httpWebRequest, encoding);
|
||||
requestStream.Close();
|
||||
requestStream.Dispose();
|
||||
}
|
||||
else
|
||||
{
|
||||
r = GetResponse(httpWebRequest, encoding);
|
||||
}
|
||||
msg = String.Empty;
|
||||
return r;
|
||||
}
|
||||
catch (WebException e)
|
||||
{
|
||||
using (var stream = e?.Response?.GetResponseStream())
|
||||
{
|
||||
msg = "http错误(" + (int)(e?.Response as HttpWebResponse)?.StatusCode + ")";
|
||||
if (stream != null)
|
||||
{
|
||||
using (StreamReader streamReader = new StreamReader(stream))
|
||||
{
|
||||
msg += streamReader.ReadToEnd();
|
||||
_LogHelper.Info("请求错误原因为:" + msg);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
msg += e.Message;
|
||||
_LogHelper.Info("请求错误原因为:" + msg);
|
||||
}
|
||||
}
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
msg = e.Message;
|
||||
_LogHelper.Info("请求错误原因为:" + msg);
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
private static PropertyInfo InnerCollectionProperty = typeof(WebHeaderCollection).GetProperty("InnerCollection",
|
||||
System.Reflection.BindingFlags.Instance | System.Reflection.BindingFlags.NonPublic);
|
||||
|
||||
public static void SetHeaderValue(WebHeaderCollection header, string name, string value)
|
||||
{
|
||||
var collection = InnerCollectionProperty.GetValue(header, null) as NameValueCollection;
|
||||
collection[name] = value;
|
||||
}
|
||||
|
||||
private void SetHead(HttpWebRequest httpWebRequest, string method, JToken head)
|
||||
{
|
||||
httpWebRequest.Method = method;
|
||||
if (head != null)
|
||||
{
|
||||
foreach (JProperty elem in head)
|
||||
{
|
||||
var name = elem.Name;
|
||||
var value = elem.Value.ToString();
|
||||
SetHeaderValue(httpWebRequest.Headers, name, value);
|
||||
}
|
||||
}
|
||||
if ("post".Equals(method, StringComparison.OrdinalIgnoreCase))
|
||||
{
|
||||
if (String.IsNullOrWhiteSpace(httpWebRequest.ContentType))
|
||||
{
|
||||
httpWebRequest.ContentType = "application/x-www-form-urlencoded";
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private void SetRequestStream(HttpWebRequest httpWebRequest, Stream requestStream, JObject jObject, Encoding encoding)
|
||||
{
|
||||
using (var streamWrite = new StreamWriter(requestStream, encoding))
|
||||
{
|
||||
var param = jObject["Param"]?.Value<string>() ?? String.Empty;
|
||||
streamWrite.Write(param);
|
||||
}
|
||||
}
|
||||
|
||||
private static readonly string[] TextContentTypes = new string[] { "application/json", "text/html" };
|
||||
|
||||
private object GetResponse(HttpWebRequest httpWebRequest, Encoding encoding)
|
||||
{
|
||||
var response = httpWebRequest.GetResponse();
|
||||
using (var stream = response.GetResponseStream())
|
||||
{
|
||||
if (IsTextContentType(response.ContentType))
|
||||
{
|
||||
using (StreamReader streamReader = new StreamReader(stream, encoding))
|
||||
{
|
||||
var r = streamReader.ReadToEnd();
|
||||
|
||||
return r;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
using (MemoryStream ms = new MemoryStream())
|
||||
{
|
||||
stream.CopyTo(ms);
|
||||
return ms.ToArray();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private bool IsTextContentType(string contentType)
|
||||
{
|
||||
if (contentType == null) return true;
|
||||
contentType = contentType.ToLower();
|
||||
var list = new string[] { "text/", "application/json", "application/xml" };
|
||||
return list.Any(m => contentType.Contains(m));
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,36 @@
|
||||
using System.Reflection;
|
||||
using System.Runtime.CompilerServices;
|
||||
using System.Runtime.InteropServices;
|
||||
|
||||
// 有关程序集的一般信息由以下
|
||||
// 控制。更改这些特性值可修改
|
||||
// 与程序集关联的信息。
|
||||
[assembly: AssemblyTitle("Getf.Service.Transfer.Client.WinService.HttpHandler")]
|
||||
[assembly: AssemblyDescription("")]
|
||||
[assembly: AssemblyConfiguration("")]
|
||||
[assembly: AssemblyCompany("Hewlett-Packard")]
|
||||
[assembly: AssemblyProduct("Getf.Service.Transfer.Client.WinService.HttpHandler")]
|
||||
[assembly: AssemblyCopyright("Copyright © Hewlett-Packard 2018")]
|
||||
[assembly: AssemblyTrademark("")]
|
||||
[assembly: AssemblyCulture("")]
|
||||
|
||||
// 将 ComVisible 设置为 false 会使此程序集中的类型
|
||||
//对 COM 组件不可见。如果需要从 COM 访问此程序集中的类型
|
||||
//请将此类型的 ComVisible 特性设置为 true。
|
||||
[assembly: ComVisible(false)]
|
||||
|
||||
// 如果此项目向 COM 公开,则下列 GUID 用于类型库的 ID
|
||||
[assembly: Guid("392104f4-b3c8-49f6-88f0-d84a26f49661")]
|
||||
|
||||
// 程序集的版本信息由下列四个值组成:
|
||||
//
|
||||
// 主版本
|
||||
// 次版本
|
||||
// 生成号
|
||||
// 修订号
|
||||
//
|
||||
// 可以指定所有值,也可以使用以下所示的 "*" 预置版本号和修订号
|
||||
//通过使用 "*",如下所示:
|
||||
// [assembly: AssemblyVersion("1.0.*")]
|
||||
[assembly: AssemblyVersion("1.0.0.0")]
|
||||
[assembly: AssemblyFileVersion("1.0.0.0")]
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -0,0 +1,8 @@
|
||||
<?xml version="1.0" encoding="utf-8" ?>
|
||||
<configuration>
|
||||
<appSettings>
|
||||
<add key="ServiceAddressInfo" value="127.0.0.1:8888" />
|
||||
<add key="HandlerClassInfo" value="" />
|
||||
<add key="AppName" value="Xzsp" />
|
||||
</appSettings>
|
||||
</configuration>
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
File diff suppressed because it is too large
Load Diff
Binary file not shown.
Binary file not shown.
File diff suppressed because it is too large
Load Diff
Binary file not shown.
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,4 @@
|
||||
// <autogenerated />
|
||||
using System;
|
||||
using System.Reflection;
|
||||
[assembly: global::System.Runtime.Versioning.TargetFrameworkAttribute(".NETFramework,Version=v4.0", FrameworkDisplayName = ".NET Framework 4")]
|
||||
Binary file not shown.
Binary file not shown.
@@ -0,0 +1 @@
|
||||
dae0273585a43c5e4cb8005bc786969a85c78bee
|
||||
@@ -0,0 +1,36 @@
|
||||
D:\WORK\C宁波拆迁\transfer\Services\Getf.Service.Transfer\Src\Getf.Service.Transfer.Client.WinService.HttpHandler\bin\Debug\Getf.Service.Transfer.Client.WinService.HttpHandler.dll
|
||||
D:\WORK\C宁波拆迁\transfer\Services\Getf.Service.Transfer\Src\Getf.Service.Transfer.Client.WinService.HttpHandler\bin\Debug\Getf.Service.Transfer.Client.WinService.HttpHandler.pdb
|
||||
D:\WORK\C宁波拆迁\transfer\Services\Getf.Service.Transfer\Src\Getf.Service.Transfer.Client.WinService.HttpHandler\bin\Debug\Getf.Service.Transfer.Client.WinService.dll
|
||||
D:\WORK\C宁波拆迁\transfer\Services\Getf.Service.Transfer\Src\Getf.Service.Transfer.Client.WinService.HttpHandler\bin\Debug\Newtonsoft.Json.dll
|
||||
D:\WORK\C宁波拆迁\transfer\Services\Getf.Service.Transfer\Src\Getf.Service.Transfer.Client.WinService.HttpHandler\bin\Debug\SuperSocket.ClientEngine.dll
|
||||
D:\WORK\C宁波拆迁\transfer\Services\Getf.Service.Transfer\Src\Getf.Service.Transfer.Client.WinService.HttpHandler\bin\Debug\log4net.dll
|
||||
D:\WORK\C宁波拆迁\transfer\Services\Getf.Service.Transfer\Src\Getf.Service.Transfer.Client.WinService.HttpHandler\bin\Debug\SuperSocket.ProtoBase.dll
|
||||
D:\WORK\C宁波拆迁\transfer\Services\Getf.Service.Transfer\Src\Getf.Service.Transfer.Client.WinService.HttpHandler\bin\Debug\Getf.Service.Transfer.Client.WinService.pdb
|
||||
D:\WORK\C宁波拆迁\transfer\Services\Getf.Service.Transfer\Src\Getf.Service.Transfer.Client.WinService.HttpHandler\bin\Debug\Getf.Service.Transfer.Client.WinService.dll.config
|
||||
D:\WORK\C宁波拆迁\transfer\Services\Getf.Service.Transfer\Src\Getf.Service.Transfer.Client.WinService.HttpHandler\bin\Debug\Newtonsoft.Json.pdb
|
||||
D:\WORK\C宁波拆迁\transfer\Services\Getf.Service.Transfer\Src\Getf.Service.Transfer.Client.WinService.HttpHandler\bin\Debug\Newtonsoft.Json.xml
|
||||
D:\WORK\C宁波拆迁\transfer\Services\Getf.Service.Transfer\Src\Getf.Service.Transfer.Client.WinService.HttpHandler\bin\Debug\log4net.xml
|
||||
D:\WORK\C宁波拆迁\transfer\Services\Getf.Service.Transfer\Src\Getf.Service.Transfer.Client.WinService.HttpHandler\bin\Debug\SuperSocket.ProtoBase.xml
|
||||
D:\WORK\C宁波拆迁\transfer\Services\Getf.Service.Transfer\Src\Getf.Service.Transfer.Client.WinService.HttpHandler\obj\Debug\Getf.Service.Transfer.Client.WinService.HttpHandler.csproj.AssemblyReference.cache
|
||||
D:\WORK\C宁波拆迁\transfer\Services\Getf.Service.Transfer\Src\Getf.Service.Transfer.Client.WinService.HttpHandler\obj\Debug\Getf.Service.Transfer.Client.WinService.HttpHandler.csproj.CoreCompileInputs.cache
|
||||
D:\WORK\C宁波拆迁\transfer\Services\Getf.Service.Transfer\Src\Getf.Service.Transfer.Client.WinService.HttpHandler\obj\Debug\Getf.Service.Transfer.Client.WinService.HttpHandler.csproj.CopyComplete
|
||||
D:\WORK\C宁波拆迁\transfer\Services\Getf.Service.Transfer\Src\Getf.Service.Transfer.Client.WinService.HttpHandler\obj\Debug\Getf.Service.Transfer.Client.WinService.HttpHandler.dll
|
||||
D:\WORK\C宁波拆迁\transfer\Services\Getf.Service.Transfer\Src\Getf.Service.Transfer.Client.WinService.HttpHandler\obj\Debug\Getf.Service.Transfer.Client.WinService.HttpHandler.pdb
|
||||
D:\WORK\C宁波拆迁\neiwai_transfer\93_nei\Getf.Service.Transfer.Client.WinService.HttpHandler\bin\Debug\Getf.Service.Transfer.Client.WinService.HttpHandler.dll
|
||||
D:\WORK\C宁波拆迁\neiwai_transfer\93_nei\Getf.Service.Transfer.Client.WinService.HttpHandler\bin\Debug\Getf.Service.Transfer.Client.WinService.HttpHandler.pdb
|
||||
D:\WORK\C宁波拆迁\neiwai_transfer\93_nei\Getf.Service.Transfer.Client.WinService.HttpHandler\bin\Debug\Getf.Service.Transfer.Client.WinService.dll
|
||||
D:\WORK\C宁波拆迁\neiwai_transfer\93_nei\Getf.Service.Transfer.Client.WinService.HttpHandler\bin\Debug\Newtonsoft.Json.dll
|
||||
D:\WORK\C宁波拆迁\neiwai_transfer\93_nei\Getf.Service.Transfer.Client.WinService.HttpHandler\bin\Debug\SuperSocket.ClientEngine.dll
|
||||
D:\WORK\C宁波拆迁\neiwai_transfer\93_nei\Getf.Service.Transfer.Client.WinService.HttpHandler\bin\Debug\log4net.dll
|
||||
D:\WORK\C宁波拆迁\neiwai_transfer\93_nei\Getf.Service.Transfer.Client.WinService.HttpHandler\bin\Debug\SuperSocket.ProtoBase.dll
|
||||
D:\WORK\C宁波拆迁\neiwai_transfer\93_nei\Getf.Service.Transfer.Client.WinService.HttpHandler\bin\Debug\Getf.Service.Transfer.Client.WinService.pdb
|
||||
D:\WORK\C宁波拆迁\neiwai_transfer\93_nei\Getf.Service.Transfer.Client.WinService.HttpHandler\bin\Debug\Getf.Service.Transfer.Client.WinService.dll.config
|
||||
D:\WORK\C宁波拆迁\neiwai_transfer\93_nei\Getf.Service.Transfer.Client.WinService.HttpHandler\bin\Debug\Newtonsoft.Json.pdb
|
||||
D:\WORK\C宁波拆迁\neiwai_transfer\93_nei\Getf.Service.Transfer.Client.WinService.HttpHandler\bin\Debug\Newtonsoft.Json.xml
|
||||
D:\WORK\C宁波拆迁\neiwai_transfer\93_nei\Getf.Service.Transfer.Client.WinService.HttpHandler\bin\Debug\log4net.xml
|
||||
D:\WORK\C宁波拆迁\neiwai_transfer\93_nei\Getf.Service.Transfer.Client.WinService.HttpHandler\bin\Debug\SuperSocket.ProtoBase.xml
|
||||
D:\WORK\C宁波拆迁\neiwai_transfer\93_nei\Getf.Service.Transfer.Client.WinService.HttpHandler\obj\Debug\Getf.Service.Transfer.Client.WinService.HttpHandler.csproj.AssemblyReference.cache
|
||||
D:\WORK\C宁波拆迁\neiwai_transfer\93_nei\Getf.Service.Transfer.Client.WinService.HttpHandler\obj\Debug\Getf.Service.Transfer.Client.WinService.HttpHandler.csproj.CoreCompileInputs.cache
|
||||
D:\WORK\C宁波拆迁\neiwai_transfer\93_nei\Getf.Service.Transfer.Client.WinService.HttpHandler\obj\Debug\Getf.Service.Transfer.Client.WinService.HttpHandler.csproj.CopyComplete
|
||||
D:\WORK\C宁波拆迁\neiwai_transfer\93_nei\Getf.Service.Transfer.Client.WinService.HttpHandler\obj\Debug\Getf.Service.Transfer.Client.WinService.HttpHandler.dll
|
||||
D:\WORK\C宁波拆迁\neiwai_transfer\93_nei\Getf.Service.Transfer.Client.WinService.HttpHandler\obj\Debug\Getf.Service.Transfer.Client.WinService.HttpHandler.pdb
|
||||
Binary file not shown.
Binary file not shown.
@@ -0,0 +1,4 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<packages>
|
||||
<package id="Newtonsoft.Json" version="12.0.1" targetFramework="net40" />
|
||||
</packages>
|
||||
@@ -0,0 +1,20 @@
|
||||
<?xml version="1.0" encoding="utf-8" ?>
|
||||
<configuration>
|
||||
<appSettings>
|
||||
<!--<add key="ServiceAddressInfo" value="183.136.157.9:8002" />-->
|
||||
<!--<add key="DataHandlerClassInfo" value="Getf.Service.Transfer.Client.WinService.HttpHandler.HttpByte.HttpByteHandler,Getf.Service.Transfer.Client.WinService.HttpHandler" />-->
|
||||
<add key="ServiceAddressInfo" value="127.0.0.1:8002" />
|
||||
<!--<add key="DataHandlerClassInfo" value="Getf.Service.Transfer.Client.WinService.HttpHandler.HttpByte.HttpByteHandler,Getf.Service.Transfer.Client.WinService.HttpHandler" />-->
|
||||
<add key="DataHandlerClassInfo" value="Getf.Service.Transfer.Client.WinService.HttpHandler.HttpDataHandler,Getf.Service.Transfer.Client.WinService.HttpHandler" />
|
||||
<add value="test" key="AppID" />
|
||||
<add value="b7ybdg482IXFsojQ4feDHf4NaiSLRtFjL7MVI6ysnvjrZ6jikFX74tVZhZKYG23A" key="AppSecret" />
|
||||
<add value="TVgSoGYNJrnU7Kg6Csuodh4IdxqZGxpEJAdRlEcTn72KlUgAiHcr7bdxLKFf9pJ6" key="Key" />
|
||||
|
||||
|
||||
<!--<add key="ServiceAddressInfo" value="183.136.157.9:8002" />
|
||||
<add key="DataHandlerClassInfo" value="Getf.Service.Transfer.Client.WinService.HttpHandler.HttpDataHandler,Getf.Service.Transfer.Client.WinService.HttpHandler" />
|
||||
<add value="DifficultHouse" key="AppID" />
|
||||
<add value="hukmPK1ed7gH4WO15ndls6KQR6GKM21yOzQjYjaYvm1Cyy63dI14TQGhrwYD3MLN" key="AppSecret" />
|
||||
<add value="iwVtMfrhdaYQnb1qnEO3dljvc0X7zK1ODayN3TKMX0ToF9GE0Owgjnoi9rgBgC9z" key="Key" />-->
|
||||
</appSettings>
|
||||
</configuration>
|
||||
@@ -0,0 +1,72 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
|
||||
<PropertyGroup>
|
||||
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
|
||||
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
|
||||
<ProjectGuid>{85B465A7-12B8-4296-9D52-84DC626B32F9}</ProjectGuid>
|
||||
<OutputType>Exe</OutputType>
|
||||
<RootNamespace>Getf.Service.Transfer.Client.WinService.Test</RootNamespace>
|
||||
<AssemblyName>Getf.Service.Transfer.Client.WinService.Test</AssemblyName>
|
||||
<TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
|
||||
<FileAlignment>512</FileAlignment>
|
||||
<Deterministic>true</Deterministic>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
|
||||
<PlatformTarget>AnyCPU</PlatformTarget>
|
||||
<DebugSymbols>true</DebugSymbols>
|
||||
<DebugType>full</DebugType>
|
||||
<Optimize>false</Optimize>
|
||||
<OutputPath>bin\Debug\</OutputPath>
|
||||
<DefineConstants>DEBUG;TRACE</DefineConstants>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<WarningLevel>4</WarningLevel>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
|
||||
<PlatformTarget>AnyCPU</PlatformTarget>
|
||||
<DebugType>pdbonly</DebugType>
|
||||
<Optimize>true</Optimize>
|
||||
<OutputPath>bin\Release\</OutputPath>
|
||||
<DefineConstants>TRACE</DefineConstants>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<WarningLevel>4</WarningLevel>
|
||||
</PropertyGroup>
|
||||
<ItemGroup>
|
||||
<Reference Include="Newtonsoft.Json, Version=12.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\Newtonsoft.Json.12.0.1\lib\net40\Newtonsoft.Json.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="System" />
|
||||
<Reference Include="System.Core" />
|
||||
<Reference Include="System.ServiceProcess" />
|
||||
<Reference Include="System.Xml.Linq" />
|
||||
<Reference Include="System.Data.DataSetExtensions" />
|
||||
<Reference Include="Microsoft.CSharp" />
|
||||
<Reference Include="System.Data" />
|
||||
<Reference Include="System.Xml" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Compile Include="Program.cs" />
|
||||
<Compile Include="Properties\AssemblyInfo.cs" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ProjectReference Include="..\Getf.Service.Transfer.Client.WinService.HttpHandler\Getf.Service.Transfer.Client.WinService.HttpHandler.csproj">
|
||||
<Project>{392104f4-b3c8-49f6-88f0-d84a26f49661}</Project>
|
||||
<Name>Getf.Service.Transfer.Client.WinService.HttpHandler</Name>
|
||||
</ProjectReference>
|
||||
<ProjectReference Include="..\Getf.Service.Transfer.Client.WinService\Getf.Service.Transfer.Client.WinService.csproj">
|
||||
<Project>{41181ed6-f47d-485e-a8f1-b2bdb52dc902}</Project>
|
||||
<Name>Getf.Service.Transfer.Client.WinService</Name>
|
||||
</ProjectReference>
|
||||
<ProjectReference Include="..\Getf.Service.Transfer.Client\Getf.Service.Transfer.Client.csproj">
|
||||
<Project>{d7a17fd1-b7ac-4e7d-86a7-6b7f219ebdde}</Project>
|
||||
<Name>Getf.Service.Transfer.Client</Name>
|
||||
</ProjectReference>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<None Include="App.config">
|
||||
<SubType>Designer</SubType>
|
||||
</None>
|
||||
<None Include="packages.config" />
|
||||
</ItemGroup>
|
||||
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
|
||||
</Project>
|
||||
@@ -0,0 +1,27 @@
|
||||
using Getf.Service.Transfer.Client.WinService.HttpHandler;
|
||||
using Newtonsoft.Json;
|
||||
using Newtonsoft.Json.Linq;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
|
||||
namespace Getf.Service.Transfer.Client.WinService.Test
|
||||
{
|
||||
class Program
|
||||
{
|
||||
static void Main(string[] args)
|
||||
{
|
||||
/*HttpService httpService = new HttpService();
|
||||
var json = "{\"Head\":{\"A\":\"b\",\"C\":1}}";
|
||||
|
||||
var r = httpService.DoRequest("http://www.baidu.com", "post", JsonConvert.DeserializeObject<JObject>(json), out string msg);*/
|
||||
|
||||
/*ClientService clientService = new ClientService();
|
||||
clientService.Start();*/
|
||||
Service1 service1 = new Service1();
|
||||
service1.Debug();
|
||||
Console.ReadKey();
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,36 @@
|
||||
using System.Reflection;
|
||||
using System.Runtime.CompilerServices;
|
||||
using System.Runtime.InteropServices;
|
||||
|
||||
// 有关程序集的一般信息由以下
|
||||
// 控制。更改这些特性值可修改
|
||||
// 与程序集关联的信息。
|
||||
[assembly: AssemblyTitle("Getf.Service.Transfer.Client.WinService.Test")]
|
||||
[assembly: AssemblyDescription("")]
|
||||
[assembly: AssemblyConfiguration("")]
|
||||
[assembly: AssemblyCompany("Hewlett-Packard")]
|
||||
[assembly: AssemblyProduct("Getf.Service.Transfer.Client.WinService.Test")]
|
||||
[assembly: AssemblyCopyright("Copyright © Hewlett-Packard 2018")]
|
||||
[assembly: AssemblyTrademark("")]
|
||||
[assembly: AssemblyCulture("")]
|
||||
|
||||
// 将 ComVisible 设置为 false 会使此程序集中的类型
|
||||
//对 COM 组件不可见。如果需要从 COM 访问此程序集中的类型
|
||||
//请将此类型的 ComVisible 特性设置为 true。
|
||||
[assembly: ComVisible(false)]
|
||||
|
||||
// 如果此项目向 COM 公开,则下列 GUID 用于类型库的 ID
|
||||
[assembly: Guid("85b465a7-12b8-4296-9d52-84dc626b32f9")]
|
||||
|
||||
// 程序集的版本信息由下列四个值组成:
|
||||
//
|
||||
// 主版本
|
||||
// 次版本
|
||||
// 生成号
|
||||
// 修订号
|
||||
//
|
||||
// 可以指定所有值,也可以使用以下所示的 "*" 预置版本号和修订号
|
||||
// 方法是按如下所示使用“*”: :
|
||||
// [assembly: AssemblyVersion("1.0.*")]
|
||||
[assembly: AssemblyVersion("1.0.0.0")]
|
||||
[assembly: AssemblyFileVersion("1.0.0.0")]
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -0,0 +1,20 @@
|
||||
<?xml version="1.0" encoding="utf-8" ?>
|
||||
<configuration>
|
||||
<appSettings>
|
||||
<!--<add key="ServiceAddressInfo" value="183.136.157.9:8002" />-->
|
||||
<!--<add key="DataHandlerClassInfo" value="Getf.Service.Transfer.Client.WinService.HttpHandler.HttpByte.HttpByteHandler,Getf.Service.Transfer.Client.WinService.HttpHandler" />-->
|
||||
<add key="ServiceAddressInfo" value="127.0.0.1:8002" />
|
||||
<!--<add key="DataHandlerClassInfo" value="Getf.Service.Transfer.Client.WinService.HttpHandler.HttpByte.HttpByteHandler,Getf.Service.Transfer.Client.WinService.HttpHandler" />-->
|
||||
<add key="DataHandlerClassInfo" value="Getf.Service.Transfer.Client.WinService.HttpHandler.HttpDataHandler,Getf.Service.Transfer.Client.WinService.HttpHandler" />
|
||||
<add value="test" key="AppID" />
|
||||
<add value="b7ybdg482IXFsojQ4feDHf4NaiSLRtFjL7MVI6ysnvjrZ6jikFX74tVZhZKYG23A" key="AppSecret" />
|
||||
<add value="TVgSoGYNJrnU7Kg6Csuodh4IdxqZGxpEJAdRlEcTn72KlUgAiHcr7bdxLKFf9pJ6" key="Key" />
|
||||
|
||||
|
||||
<!--<add key="ServiceAddressInfo" value="183.136.157.9:8002" />
|
||||
<add key="DataHandlerClassInfo" value="Getf.Service.Transfer.Client.WinService.HttpHandler.HttpDataHandler,Getf.Service.Transfer.Client.WinService.HttpHandler" />
|
||||
<add value="DifficultHouse" key="AppID" />
|
||||
<add value="hukmPK1ed7gH4WO15ndls6KQR6GKM21yOzQjYjaYvm1Cyy63dI14TQGhrwYD3MLN" key="AppSecret" />
|
||||
<add value="iwVtMfrhdaYQnb1qnEO3dljvc0X7zK1ODayN3TKMX0ToF9GE0Owgjnoi9rgBgC9z" key="Key" />-->
|
||||
</appSettings>
|
||||
</configuration>
|
||||
Binary file not shown.
Binary file not shown.
@@ -0,0 +1,8 @@
|
||||
<?xml version="1.0" encoding="utf-8" ?>
|
||||
<configuration>
|
||||
<appSettings>
|
||||
<add key="ServiceAddressInfo" value="127.0.0.1:8888" />
|
||||
<add key="HandlerClassInfo" value="" />
|
||||
<add key="AppName" value="Xzsp" />
|
||||
</appSettings>
|
||||
</configuration>
|
||||
Binary file not shown.
Binary file not shown.
@@ -0,0 +1,10 @@
|
||||
<?xml version="1.0" encoding="utf-8" ?>
|
||||
<configuration>
|
||||
<appSettings>
|
||||
<add key="ServiceAddressInfo" value="127.0.0.1:8888" />
|
||||
<add key="DataHandlerClassInfo" value="Getf.Service.Transfer.Client.WinService.HttpHandler.HttpDataHandler,Getf.Service.Transfer.Client.WinService.HttpHandler" />
|
||||
<add value="test" key="AppID" />
|
||||
<add value="b7ybdg482IXFsojQ4feDHf4NaiSLRtFjL7MVI6ysnvjrZ6jikFX74tVZhZKYG23A" key="AppSecret" />
|
||||
<add value="TVgSoGYNJrnU7Kg6Csuodh4IdxqZGxpEJAdRlEcTn72KlUgAiHcr7bdxLKFf9pJ6" key="Key" />
|
||||
</appSettings>
|
||||
</configuration>
|
||||
Binary file not shown.
@@ -0,0 +1,708 @@
|
||||
|
||||
异常时间:2021-11-30 14:33:01,998
|
||||
异常级别:ERROR
|
||||
异常内容:发生错误:请求客户端已断开
|
||||
|
||||
异常时间:2021-11-30 15:02:16,933
|
||||
异常级别:ERROR
|
||||
异常内容:超过一分钟没收到心跳包的反馈信息
|
||||
|
||||
异常时间:2021-11-30 15:02:21,942
|
||||
异常级别:ERROR
|
||||
异常内容:超过一分钟没收到心跳包的反馈信息
|
||||
|
||||
异常时间:2021-11-30 15:02:26,945
|
||||
异常级别:ERROR
|
||||
异常内容:超过一分钟没收到心跳包的反馈信息
|
||||
|
||||
异常时间:2021-11-30 15:02:31,946
|
||||
异常级别:ERROR
|
||||
异常内容:超过一分钟没收到心跳包的反馈信息
|
||||
|
||||
异常时间:2021-11-30 15:02:36,949
|
||||
异常级别:ERROR
|
||||
异常内容:超过一分钟没收到心跳包的反馈信息
|
||||
|
||||
异常时间:2021-11-30 15:02:41,951
|
||||
异常级别:ERROR
|
||||
异常内容:超过一分钟没收到心跳包的反馈信息
|
||||
|
||||
异常时间:2021-11-30 15:02:46,953
|
||||
异常级别:ERROR
|
||||
异常内容:超过一分钟没收到心跳包的反馈信息
|
||||
|
||||
异常时间:2021-11-30 15:02:51,954
|
||||
异常级别:ERROR
|
||||
异常内容:超过一分钟没收到心跳包的反馈信息
|
||||
|
||||
异常时间:2021-11-30 15:02:56,965
|
||||
异常级别:ERROR
|
||||
异常内容:超过一分钟没收到心跳包的反馈信息
|
||||
|
||||
异常时间:2021-11-30 15:03:01,979
|
||||
异常级别:ERROR
|
||||
异常内容:超过一分钟没收到心跳包的反馈信息
|
||||
|
||||
异常时间:2021-11-30 15:03:06,988
|
||||
异常级别:ERROR
|
||||
异常内容:超过一分钟没收到心跳包的反馈信息
|
||||
|
||||
异常时间:2021-11-30 15:03:12,002
|
||||
异常级别:ERROR
|
||||
异常内容:超过一分钟没收到心跳包的反馈信息
|
||||
|
||||
异常时间:2021-11-30 15:03:17,016
|
||||
异常级别:ERROR
|
||||
异常内容:超过一分钟没收到心跳包的反馈信息
|
||||
|
||||
异常时间:2021-11-30 15:03:22,023
|
||||
异常级别:ERROR
|
||||
异常内容:超过一分钟没收到心跳包的反馈信息
|
||||
|
||||
异常时间:2021-11-30 15:03:27,027
|
||||
异常级别:ERROR
|
||||
异常内容:超过一分钟没收到心跳包的反馈信息
|
||||
|
||||
异常时间:2021-11-30 15:03:32,036
|
||||
异常级别:ERROR
|
||||
异常内容:超过一分钟没收到心跳包的反馈信息
|
||||
|
||||
异常时间:2021-11-30 15:03:37,041
|
||||
异常级别:ERROR
|
||||
异常内容:超过一分钟没收到心跳包的反馈信息
|
||||
|
||||
异常时间:2021-11-30 15:03:42,050
|
||||
异常级别:ERROR
|
||||
异常内容:超过一分钟没收到心跳包的反馈信息
|
||||
|
||||
异常时间:2021-11-30 15:03:47,055
|
||||
异常级别:ERROR
|
||||
异常内容:超过一分钟没收到心跳包的反馈信息
|
||||
|
||||
异常时间:2021-11-30 15:03:52,063
|
||||
异常级别:ERROR
|
||||
异常内容:超过一分钟没收到心跳包的反馈信息
|
||||
|
||||
异常时间:2021-11-30 15:03:57,066
|
||||
异常级别:ERROR
|
||||
异常内容:超过一分钟没收到心跳包的反馈信息
|
||||
|
||||
异常时间:2021-11-30 15:04:02,076
|
||||
异常级别:ERROR
|
||||
异常内容:超过一分钟没收到心跳包的反馈信息
|
||||
|
||||
异常时间:2021-11-30 15:04:07,091
|
||||
异常级别:ERROR
|
||||
异常内容:超过一分钟没收到心跳包的反馈信息
|
||||
|
||||
异常时间:2021-11-30 15:04:12,100
|
||||
异常级别:ERROR
|
||||
异常内容:超过一分钟没收到心跳包的反馈信息
|
||||
|
||||
异常时间:2021-11-30 15:04:17,113
|
||||
异常级别:ERROR
|
||||
异常内容:超过一分钟没收到心跳包的反馈信息
|
||||
|
||||
异常时间:2021-11-30 15:04:22,123
|
||||
异常级别:ERROR
|
||||
异常内容:超过一分钟没收到心跳包的反馈信息
|
||||
|
||||
异常时间:2021-11-30 15:04:27,130
|
||||
异常级别:ERROR
|
||||
异常内容:超过一分钟没收到心跳包的反馈信息
|
||||
|
||||
异常时间:2021-11-30 15:04:32,142
|
||||
异常级别:ERROR
|
||||
异常内容:超过一分钟没收到心跳包的反馈信息
|
||||
|
||||
异常时间:2021-11-30 15:04:37,144
|
||||
异常级别:ERROR
|
||||
异常内容:超过一分钟没收到心跳包的反馈信息
|
||||
|
||||
异常时间:2021-11-30 15:04:42,151
|
||||
异常级别:ERROR
|
||||
异常内容:超过一分钟没收到心跳包的反馈信息
|
||||
|
||||
异常时间:2021-11-30 15:04:47,152
|
||||
异常级别:ERROR
|
||||
异常内容:超过一分钟没收到心跳包的反馈信息
|
||||
|
||||
异常时间:2021-11-30 15:04:52,168
|
||||
异常级别:ERROR
|
||||
异常内容:超过一分钟没收到心跳包的反馈信息
|
||||
|
||||
异常时间:2021-11-30 15:04:57,181
|
||||
异常级别:ERROR
|
||||
异常内容:超过一分钟没收到心跳包的反馈信息
|
||||
|
||||
异常时间:2021-11-30 15:05:02,193
|
||||
异常级别:ERROR
|
||||
异常内容:超过一分钟没收到心跳包的反馈信息
|
||||
|
||||
异常时间:2021-11-30 15:05:07,199
|
||||
异常级别:ERROR
|
||||
异常内容:超过一分钟没收到心跳包的反馈信息
|
||||
|
||||
异常时间:2021-11-30 15:05:12,213
|
||||
异常级别:ERROR
|
||||
异常内容:超过一分钟没收到心跳包的反馈信息
|
||||
|
||||
异常时间:2021-11-30 15:05:17,215
|
||||
异常级别:ERROR
|
||||
异常内容:超过一分钟没收到心跳包的反馈信息
|
||||
|
||||
异常时间:2021-11-30 15:05:22,227
|
||||
异常级别:ERROR
|
||||
异常内容:超过一分钟没收到心跳包的反馈信息
|
||||
|
||||
异常时间:2021-11-30 15:05:27,236
|
||||
异常级别:ERROR
|
||||
异常内容:超过一分钟没收到心跳包的反馈信息
|
||||
|
||||
异常时间:2021-11-30 15:05:32,250
|
||||
异常级别:ERROR
|
||||
异常内容:超过一分钟没收到心跳包的反馈信息
|
||||
|
||||
异常时间:2021-11-30 15:05:37,260
|
||||
异常级别:ERROR
|
||||
异常内容:超过一分钟没收到心跳包的反馈信息
|
||||
|
||||
异常时间:2021-11-30 15:05:42,268
|
||||
异常级别:ERROR
|
||||
异常内容:超过一分钟没收到心跳包的反馈信息
|
||||
|
||||
异常时间:2021-11-30 15:05:47,270
|
||||
异常级别:ERROR
|
||||
异常内容:超过一分钟没收到心跳包的反馈信息
|
||||
|
||||
异常时间:2021-11-30 15:05:52,283
|
||||
异常级别:ERROR
|
||||
异常内容:超过一分钟没收到心跳包的反馈信息
|
||||
|
||||
异常时间:2021-11-30 15:05:57,295
|
||||
异常级别:ERROR
|
||||
异常内容:超过一分钟没收到心跳包的反馈信息
|
||||
|
||||
异常时间:2021-11-30 15:06:02,307
|
||||
异常级别:ERROR
|
||||
异常内容:超过一分钟没收到心跳包的反馈信息
|
||||
|
||||
异常时间:2021-11-30 15:06:07,322
|
||||
异常级别:ERROR
|
||||
异常内容:超过一分钟没收到心跳包的反馈信息
|
||||
|
||||
异常时间:2021-11-30 15:06:12,332
|
||||
异常级别:ERROR
|
||||
异常内容:超过一分钟没收到心跳包的反馈信息
|
||||
|
||||
异常时间:2021-11-30 15:06:17,342
|
||||
异常级别:ERROR
|
||||
异常内容:超过一分钟没收到心跳包的反馈信息
|
||||
|
||||
异常时间:2021-11-30 15:06:22,356
|
||||
异常级别:ERROR
|
||||
异常内容:超过一分钟没收到心跳包的反馈信息
|
||||
|
||||
异常时间:2021-11-30 15:06:27,370
|
||||
异常级别:ERROR
|
||||
异常内容:超过一分钟没收到心跳包的反馈信息
|
||||
|
||||
异常时间:2021-11-30 15:06:32,373
|
||||
异常级别:ERROR
|
||||
异常内容:超过一分钟没收到心跳包的反馈信息
|
||||
|
||||
异常时间:2021-11-30 15:06:37,384
|
||||
异常级别:ERROR
|
||||
异常内容:超过一分钟没收到心跳包的反馈信息
|
||||
|
||||
异常时间:2021-11-30 15:06:42,400
|
||||
异常级别:ERROR
|
||||
异常内容:超过一分钟没收到心跳包的反馈信息
|
||||
|
||||
异常时间:2021-11-30 15:06:47,410
|
||||
异常级别:ERROR
|
||||
异常内容:超过一分钟没收到心跳包的反馈信息
|
||||
|
||||
异常时间:2021-11-30 15:06:52,416
|
||||
异常级别:ERROR
|
||||
异常内容:超过一分钟没收到心跳包的反馈信息
|
||||
|
||||
异常时间:2021-11-30 15:06:57,420
|
||||
异常级别:ERROR
|
||||
异常内容:超过一分钟没收到心跳包的反馈信息
|
||||
|
||||
异常时间:2021-11-30 15:07:02,426
|
||||
异常级别:ERROR
|
||||
异常内容:超过一分钟没收到心跳包的反馈信息
|
||||
|
||||
异常时间:2021-11-30 15:07:07,427
|
||||
异常级别:ERROR
|
||||
异常内容:超过一分钟没收到心跳包的反馈信息
|
||||
|
||||
异常时间:2021-11-30 15:07:12,429
|
||||
异常级别:ERROR
|
||||
异常内容:超过一分钟没收到心跳包的反馈信息
|
||||
|
||||
异常时间:2021-11-30 15:07:17,431
|
||||
异常级别:ERROR
|
||||
异常内容:超过一分钟没收到心跳包的反馈信息
|
||||
|
||||
异常时间:2021-11-30 15:07:22,434
|
||||
异常级别:ERROR
|
||||
异常内容:超过一分钟没收到心跳包的反馈信息
|
||||
|
||||
异常时间:2021-11-30 15:07:27,441
|
||||
异常级别:ERROR
|
||||
异常内容:超过一分钟没收到心跳包的反馈信息
|
||||
|
||||
异常时间:2021-11-30 15:07:32,455
|
||||
异常级别:ERROR
|
||||
异常内容:超过一分钟没收到心跳包的反馈信息
|
||||
|
||||
异常时间:2021-11-30 15:07:37,457
|
||||
异常级别:ERROR
|
||||
异常内容:超过一分钟没收到心跳包的反馈信息
|
||||
|
||||
异常时间:2021-11-30 15:07:42,459
|
||||
异常级别:ERROR
|
||||
异常内容:超过一分钟没收到心跳包的反馈信息
|
||||
|
||||
异常时间:2021-11-30 15:07:47,459
|
||||
异常级别:ERROR
|
||||
异常内容:超过一分钟没收到心跳包的反馈信息
|
||||
|
||||
异常时间:2021-11-30 15:07:52,461
|
||||
异常级别:ERROR
|
||||
异常内容:超过一分钟没收到心跳包的反馈信息
|
||||
|
||||
异常时间:2021-11-30 15:07:57,469
|
||||
异常级别:ERROR
|
||||
异常内容:超过一分钟没收到心跳包的反馈信息
|
||||
|
||||
异常时间:2021-11-30 15:08:02,484
|
||||
异常级别:ERROR
|
||||
异常内容:超过一分钟没收到心跳包的反馈信息
|
||||
|
||||
异常时间:2021-11-30 15:08:07,498
|
||||
异常级别:ERROR
|
||||
异常内容:超过一分钟没收到心跳包的反馈信息
|
||||
|
||||
异常时间:2021-11-30 15:08:12,502
|
||||
异常级别:ERROR
|
||||
异常内容:超过一分钟没收到心跳包的反馈信息
|
||||
|
||||
异常时间:2021-11-30 15:08:17,516
|
||||
异常级别:ERROR
|
||||
异常内容:超过一分钟没收到心跳包的反馈信息
|
||||
|
||||
异常时间:2021-11-30 15:08:22,528
|
||||
异常级别:ERROR
|
||||
异常内容:超过一分钟没收到心跳包的反馈信息
|
||||
|
||||
异常时间:2021-11-30 15:08:27,529
|
||||
异常级别:ERROR
|
||||
异常内容:超过一分钟没收到心跳包的反馈信息
|
||||
|
||||
异常时间:2021-11-30 15:08:32,531
|
||||
异常级别:ERROR
|
||||
异常内容:超过一分钟没收到心跳包的反馈信息
|
||||
|
||||
异常时间:2021-11-30 15:08:37,531
|
||||
异常级别:ERROR
|
||||
异常内容:超过一分钟没收到心跳包的反馈信息
|
||||
|
||||
异常时间:2021-11-30 15:08:42,533
|
||||
异常级别:ERROR
|
||||
异常内容:超过一分钟没收到心跳包的反馈信息
|
||||
|
||||
异常时间:2021-11-30 15:08:47,543
|
||||
异常级别:ERROR
|
||||
异常内容:超过一分钟没收到心跳包的反馈信息
|
||||
|
||||
异常时间:2021-11-30 15:08:52,549
|
||||
异常级别:ERROR
|
||||
异常内容:超过一分钟没收到心跳包的反馈信息
|
||||
|
||||
异常时间:2021-11-30 15:08:57,564
|
||||
异常级别:ERROR
|
||||
异常内容:超过一分钟没收到心跳包的反馈信息
|
||||
|
||||
异常时间:2021-11-30 15:09:02,571
|
||||
异常级别:ERROR
|
||||
异常内容:超过一分钟没收到心跳包的反馈信息
|
||||
|
||||
异常时间:2021-11-30 15:09:07,583
|
||||
异常级别:ERROR
|
||||
异常内容:超过一分钟没收到心跳包的反馈信息
|
||||
|
||||
异常时间:2021-11-30 15:09:12,593
|
||||
异常级别:ERROR
|
||||
异常内容:超过一分钟没收到心跳包的反馈信息
|
||||
|
||||
异常时间:2021-11-30 15:09:17,593
|
||||
异常级别:ERROR
|
||||
异常内容:超过一分钟没收到心跳包的反馈信息
|
||||
|
||||
异常时间:2021-11-30 15:09:22,594
|
||||
异常级别:ERROR
|
||||
异常内容:超过一分钟没收到心跳包的反馈信息
|
||||
|
||||
异常时间:2021-11-30 15:09:27,594
|
||||
异常级别:ERROR
|
||||
异常内容:超过一分钟没收到心跳包的反馈信息
|
||||
|
||||
异常时间:2021-11-30 15:09:32,596
|
||||
异常级别:ERROR
|
||||
异常内容:超过一分钟没收到心跳包的反馈信息
|
||||
|
||||
异常时间:2021-11-30 15:09:37,599
|
||||
异常级别:ERROR
|
||||
异常内容:超过一分钟没收到心跳包的反馈信息
|
||||
|
||||
异常时间:2021-11-30 15:09:42,600
|
||||
异常级别:ERROR
|
||||
异常内容:超过一分钟没收到心跳包的反馈信息
|
||||
|
||||
异常时间:2021-11-30 15:09:47,603
|
||||
异常级别:ERROR
|
||||
异常内容:超过一分钟没收到心跳包的反馈信息
|
||||
|
||||
异常时间:2021-11-30 15:09:52,606
|
||||
异常级别:ERROR
|
||||
异常内容:超过一分钟没收到心跳包的反馈信息
|
||||
|
||||
异常时间:2021-11-30 15:09:57,607
|
||||
异常级别:ERROR
|
||||
异常内容:超过一分钟没收到心跳包的反馈信息
|
||||
|
||||
异常时间:2021-11-30 15:10:02,610
|
||||
异常级别:ERROR
|
||||
异常内容:超过一分钟没收到心跳包的反馈信息
|
||||
|
||||
异常时间:2021-11-30 15:10:07,612
|
||||
异常级别:ERROR
|
||||
异常内容:超过一分钟没收到心跳包的反馈信息
|
||||
|
||||
异常时间:2021-11-30 15:10:12,614
|
||||
异常级别:ERROR
|
||||
异常内容:超过一分钟没收到心跳包的反馈信息
|
||||
|
||||
异常时间:2021-11-30 15:10:17,615
|
||||
异常级别:ERROR
|
||||
异常内容:超过一分钟没收到心跳包的反馈信息
|
||||
|
||||
异常时间:2021-11-30 15:10:22,618
|
||||
异常级别:ERROR
|
||||
异常内容:超过一分钟没收到心跳包的反馈信息
|
||||
|
||||
异常时间:2021-11-30 15:10:27,618
|
||||
异常级别:ERROR
|
||||
异常内容:超过一分钟没收到心跳包的反馈信息
|
||||
|
||||
异常时间:2021-11-30 15:10:32,620
|
||||
异常级别:ERROR
|
||||
异常内容:超过一分钟没收到心跳包的反馈信息
|
||||
|
||||
异常时间:2021-11-30 15:10:37,623
|
||||
异常级别:ERROR
|
||||
异常内容:超过一分钟没收到心跳包的反馈信息
|
||||
|
||||
异常时间:2021-11-30 15:10:42,625
|
||||
异常级别:ERROR
|
||||
异常内容:超过一分钟没收到心跳包的反馈信息
|
||||
|
||||
异常时间:2021-11-30 15:10:47,627
|
||||
异常级别:ERROR
|
||||
异常内容:超过一分钟没收到心跳包的反馈信息
|
||||
|
||||
异常时间:2021-11-30 15:10:52,628
|
||||
异常级别:ERROR
|
||||
异常内容:超过一分钟没收到心跳包的反馈信息
|
||||
|
||||
异常时间:2021-11-30 15:10:57,631
|
||||
异常级别:ERROR
|
||||
异常内容:超过一分钟没收到心跳包的反馈信息
|
||||
|
||||
异常时间:2021-11-30 15:11:02,632
|
||||
异常级别:ERROR
|
||||
异常内容:超过一分钟没收到心跳包的反馈信息
|
||||
|
||||
异常时间:2021-11-30 15:11:07,636
|
||||
异常级别:ERROR
|
||||
异常内容:超过一分钟没收到心跳包的反馈信息
|
||||
|
||||
异常时间:2021-11-30 15:11:12,639
|
||||
异常级别:ERROR
|
||||
异常内容:超过一分钟没收到心跳包的反馈信息
|
||||
|
||||
异常时间:2021-11-30 15:11:17,640
|
||||
异常级别:ERROR
|
||||
异常内容:超过一分钟没收到心跳包的反馈信息
|
||||
|
||||
异常时间:2021-11-30 15:11:22,640
|
||||
异常级别:ERROR
|
||||
异常内容:超过一分钟没收到心跳包的反馈信息
|
||||
|
||||
异常时间:2021-11-30 15:11:27,642
|
||||
异常级别:ERROR
|
||||
异常内容:超过一分钟没收到心跳包的反馈信息
|
||||
|
||||
异常时间:2021-11-30 15:11:32,643
|
||||
异常级别:ERROR
|
||||
异常内容:超过一分钟没收到心跳包的反馈信息
|
||||
|
||||
异常时间:2021-11-30 15:11:37,644
|
||||
异常级别:ERROR
|
||||
异常内容:超过一分钟没收到心跳包的反馈信息
|
||||
|
||||
异常时间:2021-11-30 15:11:42,648
|
||||
异常级别:ERROR
|
||||
异常内容:超过一分钟没收到心跳包的反馈信息
|
||||
|
||||
异常时间:2021-11-30 15:11:47,651
|
||||
异常级别:ERROR
|
||||
异常内容:超过一分钟没收到心跳包的反馈信息
|
||||
|
||||
异常时间:2021-11-30 15:11:52,654
|
||||
异常级别:ERROR
|
||||
异常内容:超过一分钟没收到心跳包的反馈信息
|
||||
|
||||
异常时间:2021-11-30 15:11:57,658
|
||||
异常级别:ERROR
|
||||
异常内容:超过一分钟没收到心跳包的反馈信息
|
||||
|
||||
异常时间:2021-11-30 15:12:02,661
|
||||
异常级别:ERROR
|
||||
异常内容:超过一分钟没收到心跳包的反馈信息
|
||||
|
||||
异常时间:2021-11-30 15:12:07,662
|
||||
异常级别:ERROR
|
||||
异常内容:超过一分钟没收到心跳包的反馈信息
|
||||
|
||||
异常时间:2021-11-30 15:12:12,664
|
||||
异常级别:ERROR
|
||||
异常内容:超过一分钟没收到心跳包的反馈信息
|
||||
|
||||
异常时间:2021-11-30 15:12:17,667
|
||||
异常级别:ERROR
|
||||
异常内容:超过一分钟没收到心跳包的反馈信息
|
||||
|
||||
异常时间:2021-11-30 15:12:22,671
|
||||
异常级别:ERROR
|
||||
异常内容:超过一分钟没收到心跳包的反馈信息
|
||||
|
||||
异常时间:2021-11-30 15:12:27,674
|
||||
异常级别:ERROR
|
||||
异常内容:超过一分钟没收到心跳包的反馈信息
|
||||
|
||||
异常时间:2021-11-30 15:12:32,678
|
||||
异常级别:ERROR
|
||||
异常内容:超过一分钟没收到心跳包的反馈信息
|
||||
|
||||
异常时间:2021-11-30 15:12:37,680
|
||||
异常级别:ERROR
|
||||
异常内容:超过一分钟没收到心跳包的反馈信息
|
||||
|
||||
异常时间:2021-11-30 15:12:42,680
|
||||
异常级别:ERROR
|
||||
异常内容:超过一分钟没收到心跳包的反馈信息
|
||||
|
||||
异常时间:2021-11-30 15:12:47,681
|
||||
异常级别:ERROR
|
||||
异常内容:超过一分钟没收到心跳包的反馈信息
|
||||
|
||||
异常时间:2021-11-30 15:12:52,685
|
||||
异常级别:ERROR
|
||||
异常内容:超过一分钟没收到心跳包的反馈信息
|
||||
|
||||
异常时间:2021-11-30 15:12:57,687
|
||||
异常级别:ERROR
|
||||
异常内容:超过一分钟没收到心跳包的反馈信息
|
||||
|
||||
异常时间:2021-11-30 15:13:02,689
|
||||
异常级别:ERROR
|
||||
异常内容:超过一分钟没收到心跳包的反馈信息
|
||||
|
||||
异常时间:2021-11-30 15:13:07,692
|
||||
异常级别:ERROR
|
||||
异常内容:超过一分钟没收到心跳包的反馈信息
|
||||
|
||||
异常时间:2021-11-30 15:13:12,695
|
||||
异常级别:ERROR
|
||||
异常内容:超过一分钟没收到心跳包的反馈信息
|
||||
|
||||
异常时间:2021-11-30 15:13:17,698
|
||||
异常级别:ERROR
|
||||
异常内容:超过一分钟没收到心跳包的反馈信息
|
||||
|
||||
异常时间:2021-11-30 15:13:22,698
|
||||
异常级别:ERROR
|
||||
异常内容:超过一分钟没收到心跳包的反馈信息
|
||||
|
||||
异常时间:2021-11-30 15:13:27,700
|
||||
异常级别:ERROR
|
||||
异常内容:超过一分钟没收到心跳包的反馈信息
|
||||
|
||||
异常时间:2021-11-30 15:13:32,703
|
||||
异常级别:ERROR
|
||||
异常内容:超过一分钟没收到心跳包的反馈信息
|
||||
|
||||
异常时间:2021-11-30 15:13:37,706
|
||||
异常级别:ERROR
|
||||
异常内容:超过一分钟没收到心跳包的反馈信息
|
||||
|
||||
异常时间:2021-11-30 15:13:42,709
|
||||
异常级别:ERROR
|
||||
异常内容:超过一分钟没收到心跳包的反馈信息
|
||||
|
||||
异常时间:2021-11-30 15:13:47,709
|
||||
异常级别:ERROR
|
||||
异常内容:超过一分钟没收到心跳包的反馈信息
|
||||
|
||||
异常时间:2021-11-30 15:13:52,712
|
||||
异常级别:ERROR
|
||||
异常内容:超过一分钟没收到心跳包的反馈信息
|
||||
|
||||
异常时间:2021-11-30 15:13:57,719
|
||||
异常级别:ERROR
|
||||
异常内容:超过一分钟没收到心跳包的反馈信息
|
||||
|
||||
异常时间:2021-11-30 15:14:02,721
|
||||
异常级别:ERROR
|
||||
异常内容:超过一分钟没收到心跳包的反馈信息
|
||||
|
||||
异常时间:2021-11-30 15:14:07,723
|
||||
异常级别:ERROR
|
||||
异常内容:超过一分钟没收到心跳包的反馈信息
|
||||
|
||||
异常时间:2021-11-30 15:14:12,724
|
||||
异常级别:ERROR
|
||||
异常内容:超过一分钟没收到心跳包的反馈信息
|
||||
|
||||
异常时间:2021-11-30 15:14:17,731
|
||||
异常级别:ERROR
|
||||
异常内容:超过一分钟没收到心跳包的反馈信息
|
||||
|
||||
异常时间:2021-11-30 15:14:22,734
|
||||
异常级别:ERROR
|
||||
异常内容:超过一分钟没收到心跳包的反馈信息
|
||||
|
||||
异常时间:2021-11-30 15:14:27,736
|
||||
异常级别:ERROR
|
||||
异常内容:超过一分钟没收到心跳包的反馈信息
|
||||
|
||||
异常时间:2021-11-30 15:14:32,740
|
||||
异常级别:ERROR
|
||||
异常内容:超过一分钟没收到心跳包的反馈信息
|
||||
|
||||
异常时间:2021-11-30 15:14:37,742
|
||||
异常级别:ERROR
|
||||
异常内容:超过一分钟没收到心跳包的反馈信息
|
||||
|
||||
异常时间:2021-11-30 15:14:42,743
|
||||
异常级别:ERROR
|
||||
异常内容:超过一分钟没收到心跳包的反馈信息
|
||||
|
||||
异常时间:2021-11-30 15:14:47,747
|
||||
异常级别:ERROR
|
||||
异常内容:超过一分钟没收到心跳包的反馈信息
|
||||
|
||||
异常时间:2021-11-30 15:14:52,747
|
||||
异常级别:ERROR
|
||||
异常内容:超过一分钟没收到心跳包的反馈信息
|
||||
|
||||
异常时间:2021-11-30 15:14:57,748
|
||||
异常级别:ERROR
|
||||
异常内容:超过一分钟没收到心跳包的反馈信息
|
||||
|
||||
异常时间:2021-11-30 15:15:02,750
|
||||
异常级别:ERROR
|
||||
异常内容:超过一分钟没收到心跳包的反馈信息
|
||||
|
||||
异常时间:2021-11-30 15:15:07,753
|
||||
异常级别:ERROR
|
||||
异常内容:超过一分钟没收到心跳包的反馈信息
|
||||
|
||||
异常时间:2021-11-30 15:15:12,755
|
||||
异常级别:ERROR
|
||||
异常内容:超过一分钟没收到心跳包的反馈信息
|
||||
|
||||
异常时间:2021-11-30 15:15:17,764
|
||||
异常级别:ERROR
|
||||
异常内容:超过一分钟没收到心跳包的反馈信息
|
||||
|
||||
异常时间:2021-11-30 15:15:22,767
|
||||
异常级别:ERROR
|
||||
异常内容:超过一分钟没收到心跳包的反馈信息
|
||||
|
||||
异常时间:2021-11-30 15:15:27,768
|
||||
异常级别:ERROR
|
||||
异常内容:超过一分钟没收到心跳包的反馈信息
|
||||
|
||||
异常时间:2021-11-30 15:15:32,772
|
||||
异常级别:ERROR
|
||||
异常内容:超过一分钟没收到心跳包的反馈信息
|
||||
|
||||
异常时间:2021-11-30 15:15:37,778
|
||||
异常级别:ERROR
|
||||
异常内容:超过一分钟没收到心跳包的反馈信息
|
||||
|
||||
异常时间:2021-11-30 15:15:42,782
|
||||
异常级别:ERROR
|
||||
异常内容:超过一分钟没收到心跳包的反馈信息
|
||||
|
||||
异常时间:2021-11-30 15:15:47,785
|
||||
异常级别:ERROR
|
||||
异常内容:超过一分钟没收到心跳包的反馈信息
|
||||
|
||||
异常时间:2021-11-30 15:15:52,787
|
||||
异常级别:ERROR
|
||||
异常内容:超过一分钟没收到心跳包的反馈信息
|
||||
|
||||
异常时间:2021-11-30 15:15:57,789
|
||||
异常级别:ERROR
|
||||
异常内容:超过一分钟没收到心跳包的反馈信息
|
||||
|
||||
异常时间:2021-11-30 15:16:02,792
|
||||
异常级别:ERROR
|
||||
异常内容:超过一分钟没收到心跳包的反馈信息
|
||||
|
||||
异常时间:2021-11-30 15:16:07,794
|
||||
异常级别:ERROR
|
||||
异常内容:超过一分钟没收到心跳包的反馈信息
|
||||
|
||||
异常时间:2021-11-30 15:16:12,796
|
||||
异常级别:ERROR
|
||||
异常内容:超过一分钟没收到心跳包的反馈信息
|
||||
|
||||
异常时间:2021-11-30 15:16:17,798
|
||||
异常级别:ERROR
|
||||
异常内容:超过一分钟没收到心跳包的反馈信息
|
||||
|
||||
异常时间:2021-11-30 15:16:22,801
|
||||
异常级别:ERROR
|
||||
异常内容:超过一分钟没收到心跳包的反馈信息
|
||||
|
||||
异常时间:2021-11-30 15:16:27,804
|
||||
异常级别:ERROR
|
||||
异常内容:超过一分钟没收到心跳包的反馈信息
|
||||
|
||||
异常时间:2021-11-30 15:16:32,807
|
||||
异常级别:ERROR
|
||||
异常内容:超过一分钟没收到心跳包的反馈信息
|
||||
|
||||
异常时间:2021-11-30 15:16:37,808
|
||||
异常级别:ERROR
|
||||
异常内容:超过一分钟没收到心跳包的反馈信息
|
||||
|
||||
异常时间:2021-11-30 15:16:42,809
|
||||
异常级别:ERROR
|
||||
异常内容:超过一分钟没收到心跳包的反馈信息
|
||||
|
||||
异常时间:2021-11-30 15:16:47,811
|
||||
异常级别:ERROR
|
||||
异常内容:超过一分钟没收到心跳包的反馈信息
|
||||
|
||||
异常时间:2021-11-30 15:16:52,813
|
||||
异常级别:ERROR
|
||||
异常内容:超过一分钟没收到心跳包的反馈信息
|
||||
@@ -0,0 +1,4 @@
|
||||
|
||||
异常时间:2021-12-13 15:03:02,204
|
||||
异常级别:ERROR
|
||||
异常内容:发生错误:请求客户端已断开
|
||||
@@ -0,0 +1,4 @@
|
||||
|
||||
异常时间:2021-12-20 16:31:30,394
|
||||
异常级别:ERROR
|
||||
异常内容:发生错误:请求客户端已断开
|
||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,134 @@
|
||||
日志时间:2021-12-13 14:52:55,693
|
||||
日志级别:INFO
|
||||
日志内容:启动服务
|
||||
|
||||
日志时间:2021-12-13 14:52:57,914
|
||||
日志级别:INFO
|
||||
日志内容:连接出错,原因为:由于目标计算机积极拒绝,无法连接。
|
||||
|
||||
日志时间:2021-12-13 14:53:04,958
|
||||
日志级别:INFO
|
||||
日志内容:连接出错,原因为:由于目标计算机积极拒绝,无法连接。
|
||||
|
||||
日志时间:2021-12-13 14:53:09,976
|
||||
日志级别:INFO
|
||||
日志内容:连接成功
|
||||
|
||||
日志时间:2021-12-13 14:53:10,394
|
||||
日志级别:INFO
|
||||
日志内容:注册成功
|
||||
|
||||
日志时间:2021-12-13 14:56:02,484
|
||||
日志级别:INFO
|
||||
日志内容:启动服务
|
||||
|
||||
日志时间:2021-12-13 14:56:02,618
|
||||
日志级别:INFO
|
||||
日志内容:连接成功
|
||||
|
||||
日志时间:2021-12-13 14:56:02,834
|
||||
日志级别:INFO
|
||||
日志内容:注册成功
|
||||
|
||||
日志时间:2021-12-13 14:57:01,938
|
||||
日志级别:INFO
|
||||
日志内容:启动服务
|
||||
|
||||
日志时间:2021-12-13 14:57:02,512
|
||||
日志级别:INFO
|
||||
日志内容:连接成功
|
||||
|
||||
日志时间:2021-12-13 14:57:03,014
|
||||
日志级别:INFO
|
||||
日志内容:注册成功
|
||||
|
||||
日志时间:2021-12-13 14:57:35,160
|
||||
日志级别:INFO
|
||||
日志内容:请求错误原因为:http错误(500)<!doctype html><html lang="zh"><head><title>HTTP Status 500 – Internal Server Error</title><style type="text/css">body {font-family:Tahoma,Arial,sans-serif;} h1, h2, h3, b {color:white;background-color:#525D76;} h1 {font-size:22px;} h2 {font-size:16px;} h3 {font-size:14px;} p {font-size:12px;} a {color:black;} .line {height:1px;background-color:#525D76;border:none;}</style></head><body><h1>HTTP Status 500 – Internal Server Error</h1><hr class="line" /><p><b>Type</b> 异常报告</p><p><b>消息</b> Request processing failed; nested exception is java.lang.NullPointerException</p><p><b>描述</b> 服务器遇到一个意外的情况,阻止它完成请求。</p><p><b>Exception</b></p><pre>org.springframework.web.util.NestedServletException: Request processing failed; nested exception is java.lang.NullPointerException
|
||||
org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:973)
|
||||
org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:863)
|
||||
javax.servlet.http.HttpServlet.service(HttpServlet.java:660)
|
||||
org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:837)
|
||||
javax.servlet.http.HttpServlet.service(HttpServlet.java:741)
|
||||
org.springframework.web.filter.HttpPutFormContentFilter.doFilterInternal(HttpPutFormContentFilter.java:88)
|
||||
org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
|
||||
org.springframework.web.filter.HiddenHttpMethodFilter.doFilterInternal(HiddenHttpMethodFilter.java:77)
|
||||
org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
|
||||
org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)
|
||||
org.jeecgframework.core.aop.GZipFilter.doFilter(GZipFilter.java:93)
|
||||
com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:123)
|
||||
org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:88)
|
||||
org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
|
||||
com.shenyue.system.api.filter.noHostFilter.doFilter(noHostFilter.java:67)
|
||||
com.shenyue.system.api.filter.crossDomainFilter.doFilter(crossDomainFilter.java:41)
|
||||
org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:344)
|
||||
org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:261)
|
||||
org.springframework.orm.hibernate4.support.OpenSessionInViewFilter.doFilterInternal(OpenSessionInViewFilter.java:150)
|
||||
org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
|
||||
</pre><p><b>Root Cause</b></p><pre>java.lang.NullPointerException
|
||||
</pre><p><b>):注意</b> 主要问题的全部 stack 信息可以在 server logs 里查看</p><hr class="line" /><h3>Apache Tomcat/9.0.31</h3></body></html>
|
||||
|
||||
日志时间:2021-12-13 14:58:56,222
|
||||
日志级别:INFO
|
||||
日志内容:请求错误原因为:http错误(500)<!doctype html><html lang="zh"><head><title>HTTP Status 500 – Internal Server Error</title><style type="text/css">body {font-family:Tahoma,Arial,sans-serif;} h1, h2, h3, b {color:white;background-color:#525D76;} h1 {font-size:22px;} h2 {font-size:16px;} h3 {font-size:14px;} p {font-size:12px;} a {color:black;} .line {height:1px;background-color:#525D76;border:none;}</style></head><body><h1>HTTP Status 500 – Internal Server Error</h1><hr class="line" /><p><b>Type</b> 异常报告</p><p><b>消息</b> Request processing failed; nested exception is java.lang.NullPointerException</p><p><b>描述</b> 服务器遇到一个意外的情况,阻止它完成请求。</p><p><b>Exception</b></p><pre>org.springframework.web.util.NestedServletException: Request processing failed; nested exception is java.lang.NullPointerException
|
||||
org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:973)
|
||||
org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:863)
|
||||
javax.servlet.http.HttpServlet.service(HttpServlet.java:660)
|
||||
org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:837)
|
||||
javax.servlet.http.HttpServlet.service(HttpServlet.java:741)
|
||||
org.springframework.web.filter.HttpPutFormContentFilter.doFilterInternal(HttpPutFormContentFilter.java:88)
|
||||
org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
|
||||
org.springframework.web.filter.HiddenHttpMethodFilter.doFilterInternal(HiddenHttpMethodFilter.java:77)
|
||||
org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
|
||||
org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)
|
||||
org.jeecgframework.core.aop.GZipFilter.doFilter(GZipFilter.java:93)
|
||||
com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:123)
|
||||
org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:88)
|
||||
org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
|
||||
com.shenyue.system.api.filter.noHostFilter.doFilter(noHostFilter.java:67)
|
||||
com.shenyue.system.api.filter.crossDomainFilter.doFilter(crossDomainFilter.java:41)
|
||||
org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:344)
|
||||
org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:261)
|
||||
org.springframework.orm.hibernate4.support.OpenSessionInViewFilter.doFilterInternal(OpenSessionInViewFilter.java:150)
|
||||
org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
|
||||
</pre><p><b>Root Cause</b></p><pre>java.lang.NullPointerException
|
||||
</pre><p><b>):注意</b> 主要问题的全部 stack 信息可以在 server logs 里查看</p><hr class="line" /><h3>Apache Tomcat/9.0.31</h3></body></html>
|
||||
|
||||
日志时间:2021-12-13 15:02:08,329
|
||||
日志级别:INFO
|
||||
日志内容:启动服务
|
||||
|
||||
日志时间:2021-12-13 15:02:08,443
|
||||
日志级别:INFO
|
||||
日志内容:连接成功
|
||||
|
||||
日志时间:2021-12-13 15:02:08,656
|
||||
日志级别:INFO
|
||||
日志内容:注册成功
|
||||
|
||||
日志时间:2021-12-13 15:03:02,199
|
||||
日志级别:INFO
|
||||
日志内容:请求错误原因为:http错误(500)<!doctype html><html lang="zh"><head><title>HTTP Status 500 – Internal Server Error</title><style type="text/css">body {font-family:Tahoma,Arial,sans-serif;} h1, h2, h3, b {color:white;background-color:#525D76;} h1 {font-size:22px;} h2 {font-size:16px;} h3 {font-size:14px;} p {font-size:12px;} a {color:black;} .line {height:1px;background-color:#525D76;border:none;}</style></head><body><h1>HTTP Status 500 – Internal Server Error</h1><hr class="line" /><p><b>Type</b> 异常报告</p><p><b>消息</b> Request processing failed; nested exception is java.lang.NullPointerException</p><p><b>描述</b> 服务器遇到一个意外的情况,阻止它完成请求。</p><p><b>Exception</b></p><pre>org.springframework.web.util.NestedServletException: Request processing failed; nested exception is java.lang.NullPointerException
|
||||
org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:973)
|
||||
org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:863)
|
||||
javax.servlet.http.HttpServlet.service(HttpServlet.java:660)
|
||||
org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:837)
|
||||
javax.servlet.http.HttpServlet.service(HttpServlet.java:741)
|
||||
org.springframework.web.filter.HttpPutFormContentFilter.doFilterInternal(HttpPutFormContentFilter.java:88)
|
||||
org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
|
||||
org.springframework.web.filter.HiddenHttpMethodFilter.doFilterInternal(HiddenHttpMethodFilter.java:77)
|
||||
org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
|
||||
org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)
|
||||
org.jeecgframework.core.aop.GZipFilter.doFilter(GZipFilter.java:93)
|
||||
com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:123)
|
||||
org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:88)
|
||||
org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
|
||||
com.shenyue.system.api.filter.noHostFilter.doFilter(noHostFilter.java:67)
|
||||
com.shenyue.system.api.filter.crossDomainFilter.doFilter(crossDomainFilter.java:41)
|
||||
org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:344)
|
||||
org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:261)
|
||||
org.springframework.orm.hibernate4.support.OpenSessionInViewFilter.doFilterInternal(OpenSessionInViewFilter.java:150)
|
||||
org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
|
||||
</pre><p><b>Root Cause</b></p><pre>java.lang.NullPointerException
|
||||
</pre><p><b>):注意</b> 主要问题的全部 stack 信息可以在 server logs 里查看</p><hr class="line" /><h3>Apache Tomcat/9.0.31</h3></body></html>
|
||||
|
||||
@@ -0,0 +1,182 @@
|
||||
日志时间:2021-12-20 16:29:53,852
|
||||
日志级别:INFO
|
||||
日志内容:启动服务
|
||||
|
||||
日志时间:2021-12-20 16:29:56,211
|
||||
日志级别:INFO
|
||||
日志内容:连接出错,原因为:由于目标计算机积极拒绝,无法连接。
|
||||
|
||||
日志时间:2021-12-20 16:30:03,607
|
||||
日志级别:INFO
|
||||
日志内容:连接出错,原因为:由于目标计算机积极拒绝,无法连接。
|
||||
|
||||
日志时间:2021-12-20 16:30:11,078
|
||||
日志级别:INFO
|
||||
日志内容:连接出错,原因为:由于目标计算机积极拒绝,无法连接。
|
||||
|
||||
日志时间:2021-12-20 16:30:18,532
|
||||
日志级别:INFO
|
||||
日志内容:连接出错,原因为:由于目标计算机积极拒绝,无法连接。
|
||||
|
||||
日志时间:2021-12-20 16:30:25,570
|
||||
日志级别:INFO
|
||||
日志内容:连接出错,原因为:由于目标计算机积极拒绝,无法连接。
|
||||
|
||||
日志时间:2021-12-20 16:30:30,580
|
||||
日志级别:INFO
|
||||
日志内容:连接成功
|
||||
|
||||
日志时间:2021-12-20 16:30:31,219
|
||||
日志级别:INFO
|
||||
日志内容:注册成功
|
||||
|
||||
日志时间:2021-12-20 16:31:10,421
|
||||
日志级别:INFO
|
||||
日志内容:请求错误原因为:http错误(500)<!doctype html><html lang="zh"><head><title>HTTP Status 500 – Internal Server Error</title><style type="text/css">body {font-family:Tahoma,Arial,sans-serif;} h1, h2, h3, b {color:white;background-color:#525D76;} h1 {font-size:22px;} h2 {font-size:16px;} h3 {font-size:14px;} p {font-size:12px;} a {color:black;} .line {height:1px;background-color:#525D76;border:none;}</style></head><body><h1>HTTP Status 500 – Internal Server Error</h1><hr class="line" /><p><b>Type</b> 异常报告</p><p><b>消息</b> Request processing failed; nested exception is java.lang.NullPointerException</p><p><b>描述</b> 服务器遇到一个意外的情况,阻止它完成请求。</p><p><b>Exception</b></p><pre>org.springframework.web.util.NestedServletException: Request processing failed; nested exception is java.lang.NullPointerException
|
||||
org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:973)
|
||||
org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:852)
|
||||
javax.servlet.http.HttpServlet.service(HttpServlet.java:634)
|
||||
org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:837)
|
||||
javax.servlet.http.HttpServlet.service(HttpServlet.java:741)
|
||||
org.springframework.web.filter.HttpPutFormContentFilter.doFilterInternal(HttpPutFormContentFilter.java:88)
|
||||
org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
|
||||
org.springframework.web.filter.HiddenHttpMethodFilter.doFilterInternal(HiddenHttpMethodFilter.java:77)
|
||||
org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
|
||||
org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)
|
||||
org.jeecgframework.core.aop.GZipFilter.doFilter(GZipFilter.java:93)
|
||||
com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:123)
|
||||
org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:88)
|
||||
org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
|
||||
com.shenyue.system.api.filter.noHostFilter.doFilter(noHostFilter.java:67)
|
||||
com.shenyue.system.api.filter.crossDomainFilter.doFilter(crossDomainFilter.java:41)
|
||||
org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:344)
|
||||
org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:261)
|
||||
org.springframework.orm.hibernate4.support.OpenSessionInViewFilter.doFilterInternal(OpenSessionInViewFilter.java:150)
|
||||
org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
|
||||
</pre><p><b>Root Cause</b></p><pre>java.lang.NullPointerException
|
||||
java.util.regex.Matcher.getTextLength(Matcher.java:1283)
|
||||
java.util.regex.Matcher.reset(Matcher.java:309)
|
||||
java.util.regex.Matcher.<init>(Matcher.java:229)
|
||||
java.util.regex.Pattern.matcher(Pattern.java:1093)
|
||||
org.jeecgframework.core.util.BrowserUtils.regex(BrowserUtils.java:149)
|
||||
org.jeecgframework.core.util.BrowserUtils.checkBrowse(BrowserUtils.java:116)
|
||||
org.jeecgframework.web.system.service.impl.SystemServiceImpl.addLog(SystemServiceImpl.java:68)
|
||||
sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
|
||||
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
|
||||
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
|
||||
java.lang.reflect.Method.invoke(Method.java:498)
|
||||
org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:317)
|
||||
org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:190)
|
||||
org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:157)
|
||||
org.springframework.transaction.interceptor.TransactionInterceptor$1.proceedWithInvocation(TransactionInterceptor.java:98)
|
||||
org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:262)
|
||||
org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:95)
|
||||
org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179)
|
||||
org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:207)
|
||||
com.sun.proxy.$Proxy189.addLog(Unknown Source)
|
||||
org.jeecgframework.core.common.exception.GlobalExceptionResolver.logDb(GlobalExceptionResolver.java:109)
|
||||
org.jeecgframework.core.common.exception.GlobalExceptionResolver.processException(GlobalExceptionResolver.java:89)
|
||||
org.jeecgframework.core.common.exception.GlobalExceptionResolver.resolveException(GlobalExceptionResolver.java:47)
|
||||
org.springframework.web.servlet.DispatcherServlet.processHandlerException(DispatcherServlet.java:1161)
|
||||
org.springframework.web.servlet.DispatcherServlet.processDispatchResult(DispatcherServlet.java:998)
|
||||
org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:952)
|
||||
org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:870)
|
||||
org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:961)
|
||||
org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:852)
|
||||
javax.servlet.http.HttpServlet.service(HttpServlet.java:634)
|
||||
org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:837)
|
||||
javax.servlet.http.HttpServlet.service(HttpServlet.java:741)
|
||||
org.springframework.web.filter.HttpPutFormContentFilter.doFilterInternal(HttpPutFormContentFilter.java:88)
|
||||
org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
|
||||
org.springframework.web.filter.HiddenHttpMethodFilter.doFilterInternal(HiddenHttpMethodFilter.java:77)
|
||||
org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
|
||||
org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)
|
||||
org.jeecgframework.core.aop.GZipFilter.doFilter(GZipFilter.java:93)
|
||||
com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:123)
|
||||
org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:88)
|
||||
org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
|
||||
com.shenyue.system.api.filter.noHostFilter.doFilter(noHostFilter.java:67)
|
||||
com.shenyue.system.api.filter.crossDomainFilter.doFilter(crossDomainFilter.java:41)
|
||||
org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:344)
|
||||
org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:261)
|
||||
org.springframework.orm.hibernate4.support.OpenSessionInViewFilter.doFilterInternal(OpenSessionInViewFilter.java:150)
|
||||
org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
|
||||
</pre><p><b>):注意</b> 主要问题的全部 stack 信息可以在 server logs 里查看</p><hr class="line" /><h3>Apache Tomcat/9.0.31</h3></body></html>
|
||||
|
||||
日志时间:2021-12-20 16:31:30,392
|
||||
日志级别:INFO
|
||||
日志内容:请求错误原因为:http错误(500)<!doctype html><html lang="zh"><head><title>HTTP Status 500 – Internal Server Error</title><style type="text/css">body {font-family:Tahoma,Arial,sans-serif;} h1, h2, h3, b {color:white;background-color:#525D76;} h1 {font-size:22px;} h2 {font-size:16px;} h3 {font-size:14px;} p {font-size:12px;} a {color:black;} .line {height:1px;background-color:#525D76;border:none;}</style></head><body><h1>HTTP Status 500 – Internal Server Error</h1><hr class="line" /><p><b>Type</b> 异常报告</p><p><b>消息</b> Request processing failed; nested exception is java.lang.NullPointerException</p><p><b>描述</b> 服务器遇到一个意外的情况,阻止它完成请求。</p><p><b>Exception</b></p><pre>org.springframework.web.util.NestedServletException: Request processing failed; nested exception is java.lang.NullPointerException
|
||||
org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:973)
|
||||
org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:852)
|
||||
javax.servlet.http.HttpServlet.service(HttpServlet.java:634)
|
||||
org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:837)
|
||||
javax.servlet.http.HttpServlet.service(HttpServlet.java:741)
|
||||
org.springframework.web.filter.HttpPutFormContentFilter.doFilterInternal(HttpPutFormContentFilter.java:88)
|
||||
org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
|
||||
org.springframework.web.filter.HiddenHttpMethodFilter.doFilterInternal(HiddenHttpMethodFilter.java:77)
|
||||
org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
|
||||
org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)
|
||||
org.jeecgframework.core.aop.GZipFilter.doFilter(GZipFilter.java:93)
|
||||
com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:123)
|
||||
org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:88)
|
||||
org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
|
||||
com.shenyue.system.api.filter.noHostFilter.doFilter(noHostFilter.java:67)
|
||||
com.shenyue.system.api.filter.crossDomainFilter.doFilter(crossDomainFilter.java:41)
|
||||
org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:344)
|
||||
org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:261)
|
||||
org.springframework.orm.hibernate4.support.OpenSessionInViewFilter.doFilterInternal(OpenSessionInViewFilter.java:150)
|
||||
org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
|
||||
</pre><p><b>Root Cause</b></p><pre>java.lang.NullPointerException
|
||||
java.util.regex.Matcher.getTextLength(Matcher.java:1283)
|
||||
java.util.regex.Matcher.reset(Matcher.java:309)
|
||||
java.util.regex.Matcher.<init>(Matcher.java:229)
|
||||
java.util.regex.Pattern.matcher(Pattern.java:1093)
|
||||
org.jeecgframework.core.util.BrowserUtils.regex(BrowserUtils.java:149)
|
||||
org.jeecgframework.core.util.BrowserUtils.checkBrowse(BrowserUtils.java:116)
|
||||
org.jeecgframework.web.system.service.impl.SystemServiceImpl.addLog(SystemServiceImpl.java:68)
|
||||
sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
|
||||
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
|
||||
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
|
||||
java.lang.reflect.Method.invoke(Method.java:498)
|
||||
org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:317)
|
||||
org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:190)
|
||||
org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:157)
|
||||
org.springframework.transaction.interceptor.TransactionInterceptor$1.proceedWithInvocation(TransactionInterceptor.java:98)
|
||||
org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:262)
|
||||
org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:95)
|
||||
org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179)
|
||||
org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:207)
|
||||
com.sun.proxy.$Proxy189.addLog(Unknown Source)
|
||||
org.jeecgframework.core.common.exception.GlobalExceptionResolver.logDb(GlobalExceptionResolver.java:109)
|
||||
org.jeecgframework.core.common.exception.GlobalExceptionResolver.processException(GlobalExceptionResolver.java:89)
|
||||
org.jeecgframework.core.common.exception.GlobalExceptionResolver.resolveException(GlobalExceptionResolver.java:47)
|
||||
org.springframework.web.servlet.DispatcherServlet.processHandlerException(DispatcherServlet.java:1161)
|
||||
org.springframework.web.servlet.DispatcherServlet.processDispatchResult(DispatcherServlet.java:998)
|
||||
org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:952)
|
||||
org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:870)
|
||||
org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:961)
|
||||
org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:852)
|
||||
javax.servlet.http.HttpServlet.service(HttpServlet.java:634)
|
||||
org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:837)
|
||||
javax.servlet.http.HttpServlet.service(HttpServlet.java:741)
|
||||
org.springframework.web.filter.HttpPutFormContentFilter.doFilterInternal(HttpPutFormContentFilter.java:88)
|
||||
org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
|
||||
org.springframework.web.filter.HiddenHttpMethodFilter.doFilterInternal(HiddenHttpMethodFilter.java:77)
|
||||
org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
|
||||
org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)
|
||||
org.jeecgframework.core.aop.GZipFilter.doFilter(GZipFilter.java:93)
|
||||
com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:123)
|
||||
org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:88)
|
||||
org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
|
||||
com.shenyue.system.api.filter.noHostFilter.doFilter(noHostFilter.java:67)
|
||||
com.shenyue.system.api.filter.crossDomainFilter.doFilter(crossDomainFilter.java:41)
|
||||
org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:344)
|
||||
org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:261)
|
||||
org.springframework.orm.hibernate4.support.OpenSessionInViewFilter.doFilterInternal(OpenSessionInViewFilter.java:150)
|
||||
org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
|
||||
</pre><p><b>):注意</b> 主要问题的全部 stack 信息可以在 server logs 里查看</p><hr class="line" /><h3>Apache Tomcat/9.0.31</h3></body></html>
|
||||
|
||||
日志时间:2021-12-20 17:15:24,210
|
||||
日志级别:INFO
|
||||
日志内容:EasyClient.OnClosed
|
||||
|
||||
Binary file not shown.
Binary file not shown.
File diff suppressed because it is too large
Load Diff
Binary file not shown.
Binary file not shown.
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,78 @@
|
||||
<?xml version="1.0" encoding="utf-8" ?>
|
||||
<log4net>
|
||||
<logger name="Getf.Transfer.Client" additivity="false">
|
||||
<level value="ALL" />
|
||||
<appender-ref ref="ErrorAppender"/>
|
||||
<appender-ref ref="InfoAppender"/>
|
||||
<appender-ref ref="DebugAppender"/>
|
||||
</logger>
|
||||
|
||||
|
||||
<appender name="SuperSocketSystemAppender" type="log4net.Appender.RollingFileAppender">
|
||||
<param name="File" value="Log\\SuperSocketSystem\\" />
|
||||
<param name="AppendToFile" value="true" />
|
||||
<param name="MaxSizeRollBackups" value="100" />
|
||||
<param name="MaxFileSize" value="10240" />
|
||||
<param name="StaticLogFileName" value="false" />
|
||||
<param name="DatePattern" value="yyyyMMdd".txt"" />
|
||||
<param name="RollingStyle" value="Date" />
|
||||
<layout type="log4net.Layout.PatternLayout">
|
||||
<param name="ConversionPattern" value="%n异常时间:%d %n异常级别:%-5p%n异常内容:%m%n" />
|
||||
</layout>
|
||||
<filter type="log4net.Filter.LevelRangeFilter">
|
||||
<param name="LevelMin" value="ALL" />
|
||||
<param name="LevelMax" value="FATAL" />
|
||||
</filter>
|
||||
<!--< > = <> %n = 回车-->
|
||||
</appender>
|
||||
|
||||
<appender name="ErrorAppender" type="log4net.Appender.RollingFileAppender">
|
||||
<param name="File" value="Log\\LogError\\" />
|
||||
<param name="AppendToFile" value="true" />
|
||||
<param name="MaxSizeRollBackups" value="100" />
|
||||
<param name="MaxFileSize" value="10240" />
|
||||
<param name="StaticLogFileName" value="false" />
|
||||
<param name="DatePattern" value="yyyyMMdd".txt"" />
|
||||
<param name="RollingStyle" value="Date" />
|
||||
<layout type="log4net.Layout.PatternLayout">
|
||||
<param name="ConversionPattern" value="%n异常时间:%d %n异常级别:%-5p%n异常内容:%m%n" />
|
||||
</layout>
|
||||
<filter type="log4net.Filter.LevelRangeFilter">
|
||||
<param name="LevelMin" value="ERROR" />
|
||||
<param name="LevelMax" value="FATAL" />
|
||||
</filter>
|
||||
<!--< > = <> %n = 回车-->
|
||||
</appender>
|
||||
<appender name="InfoAppender" type="log4net.Appender.RollingFileAppender">
|
||||
<param name="File" value="Log\\LogInfo\\" />
|
||||
<param name="AppendToFile" value="true" />
|
||||
<param name="MaxFileSize" value="10240" />
|
||||
<param name="MaxSizeRollBackups" value="100" />
|
||||
<param name="StaticLogFileName" value="false" />
|
||||
<param name="DatePattern" value="yyyyMMdd".txt"" />
|
||||
<param name="RollingStyle" value="Date" />
|
||||
<layout type="log4net.Layout.PatternLayout">
|
||||
<param name="ConversionPattern" value="日志时间:%d %n日志级别:%-5p %n日志内容:%m%n%n" />
|
||||
</layout>
|
||||
<filter type="log4net.Filter.LevelRangeFilter">
|
||||
<param name="LevelMin" value="INFO" />
|
||||
<param name="LevelMax" value="WARN" />
|
||||
</filter>
|
||||
</appender>
|
||||
<appender name="DebugAppender" type="log4net.Appender.RollingFileAppender">
|
||||
<param name="File" value="Log\\LogDebug\\" />
|
||||
<param name="AppendToFile" value="true" />
|
||||
<param name="MaxFileSize" value="10240" />
|
||||
<param name="MaxSizeRollBackups" value="100" />
|
||||
<param name="StaticLogFileName" value="false" />
|
||||
<param name="DatePattern" value="yyyyMMdd".txt"" />
|
||||
<param name="RollingStyle" value="Date" />
|
||||
<layout type="log4net.Layout.PatternLayout">
|
||||
<param name="ConversionPattern" value="日志时间:%d %n日志级别:%-5p %n日志内容:%m%n%n" />
|
||||
</layout>
|
||||
<filter type="log4net.Filter.LevelRangeFilter">
|
||||
<param name="LevelMin" value="ALL" />
|
||||
<param name="LevelMax" value="DEBUG" />
|
||||
</filter>
|
||||
</appender>
|
||||
</log4net>
|
||||
Binary file not shown.
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,4 @@
|
||||
// <autogenerated />
|
||||
using System;
|
||||
using System.Reflection;
|
||||
[assembly: global::System.Runtime.Versioning.TargetFrameworkAttribute(".NETFramework,Version=v4.0", FrameworkDisplayName = ".NET Framework 4")]
|
||||
Binary file not shown.
Binary file not shown.
@@ -0,0 +1 @@
|
||||
38e28782e1994e195f25ba81736711a6e16319b1
|
||||
@@ -0,0 +1,50 @@
|
||||
D:\WORK\C宁波拆迁\transfer\Services\Getf.Service.Transfer\Src\Getf.Service.Transfer.Client.WinService.Test\bin\Debug\log4net.config
|
||||
D:\WORK\C宁波拆迁\transfer\Services\Getf.Service.Transfer\Src\Getf.Service.Transfer.Client.WinService.Test\bin\Debug\Getf.Service.Transfer.Client.WinService.Test.exe.config
|
||||
D:\WORK\C宁波拆迁\transfer\Services\Getf.Service.Transfer\Src\Getf.Service.Transfer.Client.WinService.Test\bin\Debug\Getf.Service.Transfer.Client.WinService.Test.exe
|
||||
D:\WORK\C宁波拆迁\transfer\Services\Getf.Service.Transfer\Src\Getf.Service.Transfer.Client.WinService.Test\bin\Debug\Getf.Service.Transfer.Client.WinService.Test.pdb
|
||||
D:\WORK\C宁波拆迁\transfer\Services\Getf.Service.Transfer\Src\Getf.Service.Transfer.Client.WinService.Test\bin\Debug\Getf.Service.Transfer.Client.exe
|
||||
D:\WORK\C宁波拆迁\transfer\Services\Getf.Service.Transfer\Src\Getf.Service.Transfer.Client.WinService.Test\bin\Debug\Getf.Service.Transfer.Client.WinService.dll
|
||||
D:\WORK\C宁波拆迁\transfer\Services\Getf.Service.Transfer\Src\Getf.Service.Transfer.Client.WinService.Test\bin\Debug\Getf.Service.Transfer.Client.WinService.HttpHandler.dll
|
||||
D:\WORK\C宁波拆迁\transfer\Services\Getf.Service.Transfer\Src\Getf.Service.Transfer.Client.WinService.Test\bin\Debug\Newtonsoft.Json.dll
|
||||
D:\WORK\C宁波拆迁\transfer\Services\Getf.Service.Transfer\Src\Getf.Service.Transfer.Client.WinService.Test\bin\Debug\SuperSocket.ClientEngine.dll
|
||||
D:\WORK\C宁波拆迁\transfer\Services\Getf.Service.Transfer\Src\Getf.Service.Transfer.Client.WinService.Test\bin\Debug\log4net.dll
|
||||
D:\WORK\C宁波拆迁\transfer\Services\Getf.Service.Transfer\Src\Getf.Service.Transfer.Client.WinService.Test\bin\Debug\SuperSocket.ProtoBase.dll
|
||||
D:\WORK\C宁波拆迁\transfer\Services\Getf.Service.Transfer\Src\Getf.Service.Transfer.Client.WinService.Test\bin\Debug\Getf.Service.Transfer.Client.WinService.HttpHandler.pdb
|
||||
D:\WORK\C宁波拆迁\transfer\Services\Getf.Service.Transfer\Src\Getf.Service.Transfer.Client.WinService.Test\bin\Debug\Getf.Service.Transfer.Client.WinService.pdb
|
||||
D:\WORK\C宁波拆迁\transfer\Services\Getf.Service.Transfer\Src\Getf.Service.Transfer.Client.WinService.Test\bin\Debug\Getf.Service.Transfer.Client.WinService.dll.config
|
||||
D:\WORK\C宁波拆迁\transfer\Services\Getf.Service.Transfer\Src\Getf.Service.Transfer.Client.WinService.Test\bin\Debug\Getf.Service.Transfer.Client.pdb
|
||||
D:\WORK\C宁波拆迁\transfer\Services\Getf.Service.Transfer\Src\Getf.Service.Transfer.Client.WinService.Test\bin\Debug\Getf.Service.Transfer.Client.exe.config
|
||||
D:\WORK\C宁波拆迁\transfer\Services\Getf.Service.Transfer\Src\Getf.Service.Transfer.Client.WinService.Test\bin\Debug\Newtonsoft.Json.pdb
|
||||
D:\WORK\C宁波拆迁\transfer\Services\Getf.Service.Transfer\Src\Getf.Service.Transfer.Client.WinService.Test\bin\Debug\Newtonsoft.Json.xml
|
||||
D:\WORK\C宁波拆迁\transfer\Services\Getf.Service.Transfer\Src\Getf.Service.Transfer.Client.WinService.Test\bin\Debug\log4net.xml
|
||||
D:\WORK\C宁波拆迁\transfer\Services\Getf.Service.Transfer\Src\Getf.Service.Transfer.Client.WinService.Test\bin\Debug\SuperSocket.ProtoBase.xml
|
||||
D:\WORK\C宁波拆迁\transfer\Services\Getf.Service.Transfer\Src\Getf.Service.Transfer.Client.WinService.Test\obj\Debug\Getf.Service.Transfer.Client.WinService.Test.csproj.AssemblyReference.cache
|
||||
D:\WORK\C宁波拆迁\transfer\Services\Getf.Service.Transfer\Src\Getf.Service.Transfer.Client.WinService.Test\obj\Debug\Getf.Service.Transfer.Client.WinService.Test.csproj.CoreCompileInputs.cache
|
||||
D:\WORK\C宁波拆迁\transfer\Services\Getf.Service.Transfer\Src\Getf.Service.Transfer.Client.WinService.Test\obj\Debug\Getf.Service.Transfer.Client.WinService.Test.csproj.CopyComplete
|
||||
D:\WORK\C宁波拆迁\transfer\Services\Getf.Service.Transfer\Src\Getf.Service.Transfer.Client.WinService.Test\obj\Debug\Getf.Service.Transfer.Client.WinService.Test.exe
|
||||
D:\WORK\C宁波拆迁\transfer\Services\Getf.Service.Transfer\Src\Getf.Service.Transfer.Client.WinService.Test\obj\Debug\Getf.Service.Transfer.Client.WinService.Test.pdb
|
||||
D:\WORK\C宁波拆迁\neiwai_transfer\93_nei\Getf.Service.Transfer.Client.WinService.Test\bin\Debug\log4net.config
|
||||
D:\WORK\C宁波拆迁\neiwai_transfer\93_nei\Getf.Service.Transfer.Client.WinService.Test\bin\Debug\Getf.Service.Transfer.Client.WinService.Test.exe.config
|
||||
D:\WORK\C宁波拆迁\neiwai_transfer\93_nei\Getf.Service.Transfer.Client.WinService.Test\bin\Debug\Getf.Service.Transfer.Client.WinService.Test.exe
|
||||
D:\WORK\C宁波拆迁\neiwai_transfer\93_nei\Getf.Service.Transfer.Client.WinService.Test\bin\Debug\Getf.Service.Transfer.Client.WinService.Test.pdb
|
||||
D:\WORK\C宁波拆迁\neiwai_transfer\93_nei\Getf.Service.Transfer.Client.WinService.Test\bin\Debug\Getf.Service.Transfer.Client.exe
|
||||
D:\WORK\C宁波拆迁\neiwai_transfer\93_nei\Getf.Service.Transfer.Client.WinService.Test\bin\Debug\Getf.Service.Transfer.Client.WinService.dll
|
||||
D:\WORK\C宁波拆迁\neiwai_transfer\93_nei\Getf.Service.Transfer.Client.WinService.Test\bin\Debug\Getf.Service.Transfer.Client.WinService.HttpHandler.dll
|
||||
D:\WORK\C宁波拆迁\neiwai_transfer\93_nei\Getf.Service.Transfer.Client.WinService.Test\bin\Debug\Newtonsoft.Json.dll
|
||||
D:\WORK\C宁波拆迁\neiwai_transfer\93_nei\Getf.Service.Transfer.Client.WinService.Test\bin\Debug\SuperSocket.ClientEngine.dll
|
||||
D:\WORK\C宁波拆迁\neiwai_transfer\93_nei\Getf.Service.Transfer.Client.WinService.Test\bin\Debug\log4net.dll
|
||||
D:\WORK\C宁波拆迁\neiwai_transfer\93_nei\Getf.Service.Transfer.Client.WinService.Test\bin\Debug\SuperSocket.ProtoBase.dll
|
||||
D:\WORK\C宁波拆迁\neiwai_transfer\93_nei\Getf.Service.Transfer.Client.WinService.Test\bin\Debug\Getf.Service.Transfer.Client.WinService.HttpHandler.pdb
|
||||
D:\WORK\C宁波拆迁\neiwai_transfer\93_nei\Getf.Service.Transfer.Client.WinService.Test\bin\Debug\Getf.Service.Transfer.Client.WinService.pdb
|
||||
D:\WORK\C宁波拆迁\neiwai_transfer\93_nei\Getf.Service.Transfer.Client.WinService.Test\bin\Debug\Getf.Service.Transfer.Client.WinService.dll.config
|
||||
D:\WORK\C宁波拆迁\neiwai_transfer\93_nei\Getf.Service.Transfer.Client.WinService.Test\bin\Debug\Getf.Service.Transfer.Client.pdb
|
||||
D:\WORK\C宁波拆迁\neiwai_transfer\93_nei\Getf.Service.Transfer.Client.WinService.Test\bin\Debug\Getf.Service.Transfer.Client.exe.config
|
||||
D:\WORK\C宁波拆迁\neiwai_transfer\93_nei\Getf.Service.Transfer.Client.WinService.Test\bin\Debug\Newtonsoft.Json.pdb
|
||||
D:\WORK\C宁波拆迁\neiwai_transfer\93_nei\Getf.Service.Transfer.Client.WinService.Test\bin\Debug\Newtonsoft.Json.xml
|
||||
D:\WORK\C宁波拆迁\neiwai_transfer\93_nei\Getf.Service.Transfer.Client.WinService.Test\bin\Debug\log4net.xml
|
||||
D:\WORK\C宁波拆迁\neiwai_transfer\93_nei\Getf.Service.Transfer.Client.WinService.Test\bin\Debug\SuperSocket.ProtoBase.xml
|
||||
D:\WORK\C宁波拆迁\neiwai_transfer\93_nei\Getf.Service.Transfer.Client.WinService.Test\obj\Debug\Getf.Service.Transfer.Client.WinService.Test.csproj.AssemblyReference.cache
|
||||
D:\WORK\C宁波拆迁\neiwai_transfer\93_nei\Getf.Service.Transfer.Client.WinService.Test\obj\Debug\Getf.Service.Transfer.Client.WinService.Test.csproj.CoreCompileInputs.cache
|
||||
D:\WORK\C宁波拆迁\neiwai_transfer\93_nei\Getf.Service.Transfer.Client.WinService.Test\obj\Debug\Getf.Service.Transfer.Client.WinService.Test.csproj.CopyComplete
|
||||
D:\WORK\C宁波拆迁\neiwai_transfer\93_nei\Getf.Service.Transfer.Client.WinService.Test\obj\Debug\Getf.Service.Transfer.Client.WinService.Test.exe
|
||||
D:\WORK\C宁波拆迁\neiwai_transfer\93_nei\Getf.Service.Transfer.Client.WinService.Test\obj\Debug\Getf.Service.Transfer.Client.WinService.Test.pdb
|
||||
Binary file not shown.
Binary file not shown.
@@ -0,0 +1,4 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<packages>
|
||||
<package id="Newtonsoft.Json" version="12.0.1" targetFramework="net40" />
|
||||
</packages>
|
||||
43
93_nei/Getf.Service.Transfer.Client.WinService.sln
Normal file
43
93_nei/Getf.Service.Transfer.Client.WinService.sln
Normal file
@@ -0,0 +1,43 @@
|
||||
|
||||
Microsoft Visual Studio Solution File, Format Version 12.00
|
||||
# Visual Studio 15
|
||||
VisualStudioVersion = 15.0.28307.106
|
||||
MinimumVisualStudioVersion = 10.0.40219.1
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Getf.Service.Transfer.Client.WinService", "Getf.Service.Transfer.Client.WinService\Getf.Service.Transfer.Client.WinService.csproj", "{41181ED6-F47D-485E-A8F1-B2BDB52DC902}"
|
||||
EndProject
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Getf.Service.Transfer.Client.WinService.HttpHandler", "Getf.Service.Transfer.Client.WinService.HttpHandler\Getf.Service.Transfer.Client.WinService.HttpHandler.csproj", "{392104F4-B3C8-49F6-88F0-D84A26F49661}"
|
||||
EndProject
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Getf.Service.Transfer.Client.WinService.Test", "Getf.Service.Transfer.Client.WinService.Test\Getf.Service.Transfer.Client.WinService.Test.csproj", "{85B465A7-12B8-4296-9D52-84DC626B32F9}"
|
||||
EndProject
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Getf.Service.Transfer.Client", "Getf.Service.Transfer.Client\Getf.Service.Transfer.Client.csproj", "{D7A17FD1-B7AC-4E7D-86A7-6B7F219EBDDE}"
|
||||
EndProject
|
||||
Global
|
||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||
Debug|Any CPU = Debug|Any CPU
|
||||
Release|Any CPU = Release|Any CPU
|
||||
EndGlobalSection
|
||||
GlobalSection(ProjectConfigurationPlatforms) = postSolution
|
||||
{41181ED6-F47D-485E-A8F1-B2BDB52DC902}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{41181ED6-F47D-485E-A8F1-B2BDB52DC902}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{41181ED6-F47D-485E-A8F1-B2BDB52DC902}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{41181ED6-F47D-485E-A8F1-B2BDB52DC902}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{392104F4-B3C8-49F6-88F0-D84A26F49661}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{392104F4-B3C8-49F6-88F0-D84A26F49661}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{392104F4-B3C8-49F6-88F0-D84A26F49661}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{392104F4-B3C8-49F6-88F0-D84A26F49661}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{85B465A7-12B8-4296-9D52-84DC626B32F9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{85B465A7-12B8-4296-9D52-84DC626B32F9}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{85B465A7-12B8-4296-9D52-84DC626B32F9}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{85B465A7-12B8-4296-9D52-84DC626B32F9}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{D7A17FD1-B7AC-4E7D-86A7-6B7F219EBDDE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{D7A17FD1-B7AC-4E7D-86A7-6B7F219EBDDE}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{D7A17FD1-B7AC-4E7D-86A7-6B7F219EBDDE}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{D7A17FD1-B7AC-4E7D-86A7-6B7F219EBDDE}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
EndGlobalSection
|
||||
GlobalSection(SolutionProperties) = preSolution
|
||||
HideSolutionNode = FALSE
|
||||
EndGlobalSection
|
||||
GlobalSection(ExtensibilityGlobals) = postSolution
|
||||
SolutionGuid = {5B53133F-62C7-4BF1-9B39-BCD0AF5E1346}
|
||||
EndGlobalSection
|
||||
EndGlobal
|
||||
@@ -0,0 +1,8 @@
|
||||
<?xml version="1.0" encoding="utf-8" ?>
|
||||
<configuration>
|
||||
<appSettings>
|
||||
<add key="ServiceAddressInfo" value="127.0.0.1:8888" />
|
||||
<add key="HandlerClassInfo" value="" />
|
||||
<add key="AppName" value="Xzsp" />
|
||||
</appSettings>
|
||||
</configuration>
|
||||
@@ -0,0 +1,198 @@
|
||||
using Getf.Service.Transfer.Client.WinService.Entities;
|
||||
using Getf.Service.Transfer.Client.WinService.Helpers;
|
||||
using Newtonsoft.Json;
|
||||
using SuperSocket.ClientEngine;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Configuration;
|
||||
using System.Linq;
|
||||
using System.Net;
|
||||
using System.Net.Sockets;
|
||||
using System.Reflection;
|
||||
using System.Text;
|
||||
using System.Threading;
|
||||
|
||||
namespace Getf.Service.Transfer.Client.WinService
|
||||
{
|
||||
public class ClientService : IDisposable
|
||||
{
|
||||
LogHelper _LogHelper;
|
||||
|
||||
private DateTime LastRecvTime = DateTime.Now;
|
||||
|
||||
private readonly IDataHandler DataHandler;
|
||||
private readonly EasyClient TcpClient;
|
||||
private readonly string Ip;
|
||||
private readonly int Port;
|
||||
private Thread HeartThread;
|
||||
private bool IsRetrying;
|
||||
|
||||
public ClientService()
|
||||
{
|
||||
var serviceAddressInfo = ConfigurationManager.AppSettings["ServiceAddressInfo"].Split(':');
|
||||
TcpClient = new EasyClient();
|
||||
Ip = serviceAddressInfo[0];
|
||||
Port = int.Parse(serviceAddressInfo[1]);
|
||||
|
||||
var assemblyInfo = System.Configuration.ConfigurationManager.AppSettings["DataHandlerClassInfo"].Split(',');
|
||||
DataHandler = Assembly.Load(assemblyInfo[1]).CreateInstance(assemblyInfo[0]) as IDataHandler;
|
||||
_LogHelper = new LogHelper();
|
||||
}
|
||||
|
||||
public void Start()
|
||||
{
|
||||
TcpClient.Initialize(new ReceiveFilter(), OnDataGeted);
|
||||
|
||||
TcpClient.Connected += OnConnected;
|
||||
//TcpClient.Closed += Reconnect;
|
||||
TcpClient.Error += Error;
|
||||
Connect();
|
||||
DoHeart();
|
||||
}
|
||||
|
||||
private void DoHeart()
|
||||
{
|
||||
#if DEBUG
|
||||
/*for (int i = 0; i < 100; i++)
|
||||
{
|
||||
var testThread = new Thread(() =>
|
||||
{
|
||||
while (true)
|
||||
{
|
||||
SendHeart();
|
||||
}
|
||||
});
|
||||
testThread.Start();
|
||||
}*/
|
||||
|
||||
#endif
|
||||
|
||||
HeartThread = new Thread(() =>
|
||||
{
|
||||
while (true)
|
||||
{
|
||||
if ((DateTime.Now - LastRecvTime).TotalMinutes > 5)
|
||||
{
|
||||
_LogHelper.Error("超过一分钟没收到心跳包的反馈信息");
|
||||
Reconnect(null, null);
|
||||
}
|
||||
if (TcpClient.IsConnected)
|
||||
{
|
||||
SendHeart();
|
||||
}
|
||||
Thread.Sleep(5 * 1000);
|
||||
}
|
||||
});
|
||||
HeartThread.Start();
|
||||
}
|
||||
|
||||
private void SendHeart()
|
||||
{
|
||||
var r = GetRegisterEntity();
|
||||
r.Head.Type = 4;
|
||||
Send(r.ToByte());
|
||||
}
|
||||
|
||||
private void OnConnected(object sender, EventArgs e)
|
||||
{
|
||||
IsRetrying = false;
|
||||
_LogHelper.Info("连接成功");
|
||||
Send(GetRegisterEntity().ToByte());
|
||||
}
|
||||
|
||||
private void Error(object sender, EventArgs e)
|
||||
{
|
||||
_LogHelper.Info("连接出错,原因为:" + ((ErrorEventArgs)e).Exception.Message);
|
||||
Reconnect(sender, e);
|
||||
}
|
||||
|
||||
private void Reconnect(object sender, EventArgs e)
|
||||
{
|
||||
LastRecvTime = DateTime.Now;
|
||||
CloseConnect();
|
||||
Thread.Sleep(5000);
|
||||
if (IsRetrying) return;
|
||||
IsRetrying = true;
|
||||
Connect();
|
||||
}
|
||||
|
||||
private void Connect()
|
||||
{
|
||||
TcpClient.ConnectAsync(new IPEndPoint(IPAddress.Parse(Ip), Port));
|
||||
}
|
||||
|
||||
|
||||
private void OnDataGeted(TransInfo transInfo)
|
||||
{
|
||||
LastRecvTime = DateTime.Now;
|
||||
if (transInfo.Body == null)//心跳包
|
||||
{
|
||||
/*//应用已被注册 再试
|
||||
if (transInfo.TransResultInfo != null && transInfo.TransResultInfo.Code == -210)
|
||||
{
|
||||
Reconnect(null, null);
|
||||
}*/
|
||||
if (transInfo.TransResultInfo != null && transInfo.TransResultInfo.Message == "注册成功!")
|
||||
{
|
||||
_LogHelper.Info("注册成功");
|
||||
return;
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
var transResult = DataHandler.HandlerData(transInfo);
|
||||
|
||||
var r = GetRegisterEntity();
|
||||
r.Body = new TransBody()
|
||||
{
|
||||
Key = transInfo.Body.Key
|
||||
};
|
||||
r.Head.Type = 3;
|
||||
r.TransResultInfo = transResult.TransResultInfo;
|
||||
r.Data = transResult.Data;
|
||||
|
||||
Send(r.ToByte());
|
||||
}
|
||||
|
||||
private void Send(byte[] data)
|
||||
{
|
||||
if (!TcpClient.IsConnected) return;
|
||||
try
|
||||
{
|
||||
TcpClient.Send(data);
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
_LogHelper.Error("发送错误原因为:" + e.Message);
|
||||
}
|
||||
}
|
||||
|
||||
private TransInfo GetRegisterEntity()
|
||||
{
|
||||
var ts = TypeHelper.GetTimeStamp();
|
||||
var r = new TransInfo()
|
||||
{
|
||||
Head = new TransHead()
|
||||
{
|
||||
Type = 1,
|
||||
AppID = ConfigurationManager.AppSettings["AppID"],
|
||||
AppSecret = ConfigurationManager.AppSettings["AppSecret"],
|
||||
TimeStamp = ts,
|
||||
Sign = Md5Helper.Md5(ts + ConfigurationManager.AppSettings["Key"])
|
||||
}
|
||||
};
|
||||
return r;
|
||||
}
|
||||
|
||||
private void CloseConnect()
|
||||
{
|
||||
_LogHelper.Info("正在关闭连接");
|
||||
TcpClient.Close();
|
||||
}
|
||||
|
||||
public void Dispose()
|
||||
{
|
||||
CloseConnect();
|
||||
}
|
||||
}
|
||||
}
|
||||
215
93_nei/Getf.Service.Transfer.Client.WinService/ClientService.cs
Normal file
215
93_nei/Getf.Service.Transfer.Client.WinService/ClientService.cs
Normal file
@@ -0,0 +1,215 @@
|
||||
using Getf.Service.Transfer.Client.WinService.Entities;
|
||||
using Getf.Service.Transfer.Client.WinService.Helpers;
|
||||
using Newtonsoft.Json;
|
||||
using SuperSocket.ClientEngine;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Configuration;
|
||||
using System.Linq;
|
||||
using System.Net;
|
||||
using System.Net.Sockets;
|
||||
using System.Reflection;
|
||||
using System.Text;
|
||||
using System.Threading;
|
||||
|
||||
namespace Getf.Service.Transfer.Client.WinService
|
||||
{
|
||||
public class ClientService : IDisposable
|
||||
{
|
||||
LogHelper _LogHelper;
|
||||
|
||||
private DateTime LastRecvTime = DateTime.Now;
|
||||
|
||||
private readonly IDataHandler DataHandler;
|
||||
private TcpClient TcpClient;
|
||||
private readonly string Ip;
|
||||
private readonly int Port;
|
||||
private Thread HeartThread;
|
||||
private bool IsRetrying;
|
||||
|
||||
public ClientService()
|
||||
{
|
||||
var serviceAddressInfo = ConfigurationManager.AppSettings["ServiceAddressInfo"].Split(':');
|
||||
Ip = serviceAddressInfo[0];
|
||||
Port = int.Parse(serviceAddressInfo[1]);
|
||||
|
||||
var assemblyInfo = System.Configuration.ConfigurationManager.AppSettings["DataHandlerClassInfo"].Split(',');
|
||||
DataHandler = Assembly.Load(assemblyInfo[1]).CreateInstance(assemblyInfo[0]) as IDataHandler;
|
||||
_LogHelper = new LogHelper();
|
||||
}
|
||||
|
||||
public void Start()
|
||||
{
|
||||
StartNewEasyClient();
|
||||
DoHeart();
|
||||
}
|
||||
|
||||
private void DoDebug()
|
||||
{
|
||||
for (var i = 0; i < 5; i++)
|
||||
{
|
||||
Thread t = new Thread(() =>
|
||||
{
|
||||
while (true)
|
||||
{
|
||||
var r = GetRegisterEntity();
|
||||
r.Head.Type = 4;
|
||||
r.Data = new byte[100 * 1024 * 1024];
|
||||
Send(r.ToByte());
|
||||
Thread.Sleep(100);
|
||||
}
|
||||
});
|
||||
t.Start();
|
||||
}
|
||||
}
|
||||
|
||||
private void StartNewEasyClient()
|
||||
{
|
||||
TcpClient = new TcpClient(Ip, Port, OnDataGeted, OnConnected, OnClosed, OnError);
|
||||
}
|
||||
|
||||
private void OnDataGeted(TransInfo transInfo)
|
||||
{
|
||||
LastRecvTime = DateTime.Now;
|
||||
if (transInfo.Body == null)//心跳包
|
||||
{
|
||||
/*//应用已被注册 再试
|
||||
if (transInfo.TransResultInfo != null && transInfo.TransResultInfo.Code == -210)
|
||||
{
|
||||
Reconnect(null, null);
|
||||
}*/
|
||||
if (transInfo.TransResultInfo != null && transInfo.TransResultInfo.Message == "注册成功!")
|
||||
{
|
||||
_LogHelper.Info("注册成功");
|
||||
return;
|
||||
}
|
||||
else
|
||||
{
|
||||
if (transInfo.TransResultInfo != null && !String.IsNullOrWhiteSpace(transInfo.TransResultInfo.Message))
|
||||
{
|
||||
_LogHelper.Error("发生错误:" + transInfo.TransResultInfo.Message);
|
||||
}
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
var transResult = DataHandler.HandlerData(transInfo);
|
||||
|
||||
var r = GetRegisterEntity();
|
||||
r.Body = new TransBody()
|
||||
{
|
||||
Key = transInfo.Body.Key
|
||||
};
|
||||
r.Head.Type = 3;
|
||||
r.TransResultInfo = transResult.TransResultInfo;
|
||||
r.Data = transResult.Data;
|
||||
|
||||
Send(r.ToByte());
|
||||
}
|
||||
|
||||
private void OnConnected(object sender, EventArgs e)
|
||||
{
|
||||
IsRetrying = false;
|
||||
_LogHelper.Info("连接成功");
|
||||
Send(GetRegisterEntity().ToByte());
|
||||
}
|
||||
|
||||
private void OnClosed(object sender, EventArgs e)
|
||||
{
|
||||
_LogHelper.Info("EasyClient.OnClosed");
|
||||
ReStart();
|
||||
}
|
||||
|
||||
private void OnError(object sender, EventArgs e)
|
||||
{
|
||||
_LogHelper.Info("连接出错,原因为:" + ((ErrorEventArgs)e).Exception.Message);
|
||||
ReStart();
|
||||
}
|
||||
|
||||
private void ReStart()
|
||||
{
|
||||
Thread.Sleep(5000);
|
||||
StartNewEasyClient();
|
||||
}
|
||||
|
||||
|
||||
|
||||
private void DoHeart()
|
||||
{
|
||||
#if DEBUG
|
||||
/*for (int i = 0; i < 100; i++)
|
||||
{
|
||||
var testThread = new Thread(() =>
|
||||
{
|
||||
while (true)
|
||||
{
|
||||
SendHeart();
|
||||
}
|
||||
});
|
||||
testThread.Start();
|
||||
}*/
|
||||
|
||||
#endif
|
||||
|
||||
HeartThread = new Thread(() =>
|
||||
{
|
||||
while (true)
|
||||
{
|
||||
if ((DateTime.Now - LastRecvTime).TotalMinutes > 10)
|
||||
{
|
||||
_LogHelper.Error("超过一分钟没收到心跳包的反馈信息");
|
||||
TcpClient.HeartLost();
|
||||
}
|
||||
if (TcpClient.IsConnected)
|
||||
{
|
||||
SendHeart();
|
||||
}
|
||||
Thread.Sleep(5 * 1000);
|
||||
}
|
||||
});
|
||||
HeartThread.Start();
|
||||
}
|
||||
|
||||
private void SendHeart()
|
||||
{
|
||||
var r = GetRegisterEntity();
|
||||
r.Head.Type = 4;
|
||||
Send(r.ToByte());
|
||||
}
|
||||
|
||||
private void Send(byte[] data)
|
||||
{
|
||||
if (!TcpClient.IsConnected) return;
|
||||
try
|
||||
{
|
||||
TcpClient.Send(data);
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
_LogHelper.Error("发送错误原因为:" + e.Message);
|
||||
}
|
||||
}
|
||||
|
||||
private TransInfo GetRegisterEntity()
|
||||
{
|
||||
var ts = TypeHelper.GetTimeStamp();
|
||||
var r = new TransInfo()
|
||||
{
|
||||
Head = new TransHead()
|
||||
{
|
||||
Type = 1,
|
||||
AppID = ConfigurationManager.AppSettings["AppID"],
|
||||
AppSecret = ConfigurationManager.AppSettings["AppSecret"],
|
||||
TimeStamp = ts,
|
||||
Sign = Md5Helper.Md5(ts + ConfigurationManager.AppSettings["Key"])
|
||||
}
|
||||
};
|
||||
return r;
|
||||
}
|
||||
|
||||
public void Dispose()
|
||||
{
|
||||
TcpClient.Dispose();
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,76 @@
|
||||
|
||||
using Newtonsoft.Json;
|
||||
using SuperSocket.ProtoBase;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.IO;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
|
||||
namespace Getf.Service.Transfer.Client.WinService.Entities
|
||||
{
|
||||
public class ReceiveFilter : FixedHeaderReceiveFilter<TransInfo>
|
||||
{
|
||||
public ReceiveFilter() : base(10)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
|
||||
protected override int GetBodyLengthFromHeader(IBufferStream bufferStream, int length)
|
||||
{
|
||||
bufferStream.ReadInt16();
|
||||
var len = GetStrLength(bufferStream) + GetDataLength(bufferStream);
|
||||
return len;
|
||||
}
|
||||
|
||||
public override TransInfo ResolvePackage(IBufferStream bufferStream)
|
||||
{
|
||||
((Stream)bufferStream).Position = 2;
|
||||
var strLength = GetStrLength(bufferStream);
|
||||
var dataLength = GetDataLength(bufferStream);
|
||||
var allLength = strLength + dataLength;
|
||||
|
||||
|
||||
byte[] buffer = new byte[strLength];
|
||||
bufferStream.Read(buffer, 0, strLength);
|
||||
var json = Encoding.UTF8.GetString(buffer);
|
||||
var r = JsonConvert.DeserializeObject<TransInfo>(json);
|
||||
if (r == null)
|
||||
{
|
||||
return new TransInfo();
|
||||
}
|
||||
buffer = new byte[dataLength];
|
||||
bufferStream.Read(buffer, 0, dataLength);
|
||||
r.Data = buffer;
|
||||
return r;
|
||||
}
|
||||
|
||||
/*protected override TransInfo ResolveRequestInfo(ArraySegment<byte> header, byte[] bodyBuffer, int offset, int length)
|
||||
{
|
||||
var strLength = BitConverter.ToInt32(header.Array, header.Offset + 2);
|
||||
var dataLength = BitConverter.ToInt32(header.Array, header.Offset + 6);
|
||||
|
||||
var json = Encoding.UTF8.GetString(bodyBuffer.Skip(offset).Take(strLength).ToArray());
|
||||
var r = JsonConvert.DeserializeObject<TransInfo>(json);
|
||||
r.Data = bodyBuffer.Skip(offset + strLength).Take(dataLength).ToArray();
|
||||
return r;
|
||||
}*/
|
||||
|
||||
private int GetStrLength(IBufferStream bufferStream)
|
||||
{
|
||||
byte[] buffer = new byte[4];
|
||||
bufferStream.Read(buffer, 0, 4);
|
||||
var r = BitConverter.ToInt32(buffer, 0);
|
||||
return r;
|
||||
}
|
||||
|
||||
private int GetDataLength(IBufferStream bufferStream)
|
||||
{
|
||||
byte[] buffer = new byte[4];
|
||||
bufferStream.Read(buffer, 0, 4);
|
||||
var r = BitConverter.ToInt32(buffer, 0);
|
||||
return r;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,18 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
|
||||
namespace Getf.Service.Transfer.Client.WinService.Entities
|
||||
{
|
||||
public class TransBody
|
||||
{
|
||||
public string TargetAppID { get; set; }
|
||||
public string AppID { get; set; }
|
||||
public string AppSecret { get; set; }
|
||||
public string Action { get; set; }
|
||||
public string Param { get; set; }
|
||||
public string Key { get; set; }
|
||||
public string Url { get; set; }
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,25 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
|
||||
namespace Getf.Service.Transfer.Client.WinService.Entities
|
||||
{
|
||||
public class TransHead
|
||||
{
|
||||
public string AppID { get; set; }
|
||||
public string AppSecret { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 1 注册 2 请求
|
||||
/// </summary>
|
||||
public int Type { get; set; }
|
||||
|
||||
public string Param { get; set; }
|
||||
public string ServiceSecret { get; set; }
|
||||
|
||||
public long TimeStamp { get; set; }
|
||||
|
||||
public string Sign { get; set; }
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,53 @@
|
||||
using Newtonsoft.Json;
|
||||
using SuperSocket.ProtoBase;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
|
||||
namespace Getf.Service.Transfer.Client.WinService.Entities
|
||||
{
|
||||
public class TransInfo : IPackageInfo
|
||||
{
|
||||
public TransHead Head { get; set; }
|
||||
|
||||
public TransBody Body { get; set; }
|
||||
|
||||
public TransResult TransResultInfo { get; set; }
|
||||
|
||||
[JsonIgnore]
|
||||
public byte[] Data { get; set; }
|
||||
|
||||
public static TransInfo Parse(byte[] buffer)
|
||||
{
|
||||
var strlength = BitConverter.ToInt32(buffer, 2);
|
||||
var byteLength = BitConverter.ToInt32(buffer, 6);
|
||||
var json = Encoding.UTF8.GetString(buffer.Skip(10).Take(strlength).ToArray());
|
||||
if (json == String.Empty)
|
||||
{
|
||||
return null;
|
||||
}
|
||||
var r = JsonConvert.DeserializeObject<TransInfo>(json);
|
||||
r.Data = buffer.Skip(10 + strlength).Take(byteLength).ToArray();
|
||||
return r;
|
||||
}
|
||||
|
||||
public byte[] ToByte()
|
||||
{
|
||||
List<byte> bufferHead = new List<byte>();
|
||||
bufferHead.AddRange(Encoding.UTF8.GetBytes("@@"));
|
||||
List<byte> bufferBody = new List<byte>();
|
||||
var json = JsonConvert.SerializeObject(this);
|
||||
bufferBody.AddRange(Encoding.UTF8.GetBytes(json));
|
||||
var strLength = bufferBody.Count;
|
||||
if (Data != null)
|
||||
{
|
||||
bufferBody.AddRange(Data);
|
||||
}
|
||||
bufferHead.AddRange(BitConverter.GetBytes(strLength));
|
||||
bufferHead.AddRange(BitConverter.GetBytes(Data == null ? 0 : Data.Length));
|
||||
bufferHead.AddRange(bufferBody);
|
||||
return bufferHead.ToArray();
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,18 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
|
||||
namespace Getf.Service.Transfer.Client.WinService.Entities
|
||||
{
|
||||
public class TransResult
|
||||
{
|
||||
public string Key { get; set; }
|
||||
|
||||
public int Code { get; set; }
|
||||
|
||||
public string Message { get; set; }
|
||||
|
||||
public byte[] Data { get; set; }
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,74 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
|
||||
<PropertyGroup>
|
||||
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
|
||||
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
|
||||
<ProjectGuid>{41181ED6-F47D-485E-A8F1-B2BDB52DC902}</ProjectGuid>
|
||||
<OutputType>Library</OutputType>
|
||||
<AppDesignerFolder>Properties</AppDesignerFolder>
|
||||
<RootNamespace>Getf.Service.Transfer.Client.WinService</RootNamespace>
|
||||
<AssemblyName>Getf.Service.Transfer.Client.WinService</AssemblyName>
|
||||
<TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
|
||||
<FileAlignment>512</FileAlignment>
|
||||
<Deterministic>true</Deterministic>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
|
||||
<DebugSymbols>true</DebugSymbols>
|
||||
<DebugType>full</DebugType>
|
||||
<Optimize>false</Optimize>
|
||||
<OutputPath>bin\Debug\</OutputPath>
|
||||
<DefineConstants>DEBUG;TRACE</DefineConstants>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<WarningLevel>4</WarningLevel>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
|
||||
<DebugType>pdbonly</DebugType>
|
||||
<Optimize>true</Optimize>
|
||||
<OutputPath>bin\Release\</OutputPath>
|
||||
<DefineConstants>TRACE</DefineConstants>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<WarningLevel>4</WarningLevel>
|
||||
</PropertyGroup>
|
||||
<ItemGroup>
|
||||
<Reference Include="log4net, Version=2.0.8.0, Culture=neutral, PublicKeyToken=669e0ddf0bb1aa2a, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\log4net.2.0.8\lib\net40-full\log4net.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="Newtonsoft.Json, Version=12.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\Newtonsoft.Json.12.0.1\lib\net40\Newtonsoft.Json.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="SuperSocket.ClientEngine, Version=0.10.0.0, Culture=neutral, PublicKeyToken=ee9af13f57f00acc, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\SuperSocket.ClientEngine.0.10.0\lib\net40-client\SuperSocket.ClientEngine.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="SuperSocket.ProtoBase, Version=1.7.0.17, Culture=neutral, PublicKeyToken=6c80000676988ebb, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\SuperSocket.ProtoBase.1.7.0.17\lib\net40\SuperSocket.ProtoBase.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="System" />
|
||||
<Reference Include="System.configuration" />
|
||||
<Reference Include="System.Core" />
|
||||
<Reference Include="System.Xml.Linq" />
|
||||
<Reference Include="System.Data.DataSetExtensions" />
|
||||
<Reference Include="Microsoft.CSharp" />
|
||||
<Reference Include="System.Data" />
|
||||
<Reference Include="System.Xml" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Compile Include="ClientService.cs" />
|
||||
<Compile Include="Entities\ReceiveFilter.cs" />
|
||||
<Compile Include="Entities\TransBody.cs" />
|
||||
<Compile Include="Entities\TransHead.cs" />
|
||||
<Compile Include="Entities\TransInfo.cs" />
|
||||
<Compile Include="Entities\TransResult.cs" />
|
||||
<Compile Include="Helpers\LogHelper.cs" />
|
||||
<Compile Include="Helpers\Md5Helper.cs" />
|
||||
<Compile Include="Helpers\TypeHelper.cs" />
|
||||
<Compile Include="IDataHandler.cs" />
|
||||
<Compile Include="Properties\AssemblyInfo.cs" />
|
||||
<Compile Include="TcpClient.cs" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<None Include="App.config" />
|
||||
<None Include="packages.config" />
|
||||
</ItemGroup>
|
||||
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
|
||||
</Project>
|
||||
@@ -0,0 +1,6 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<PropertyGroup>
|
||||
<ProjectView>ShowAllFiles</ProjectView>
|
||||
</PropertyGroup>
|
||||
</Project>
|
||||
@@ -0,0 +1,43 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
|
||||
namespace Getf.Service.Transfer.Client.WinService.Helpers
|
||||
{
|
||||
public class LogHelper
|
||||
{
|
||||
log4net.ILog MLog;
|
||||
|
||||
public LogHelper()
|
||||
{
|
||||
|
||||
MLog = log4net.LogManager.GetLogger("Getf.Transfer.Client");
|
||||
}
|
||||
|
||||
public void Debug(string msg)
|
||||
{
|
||||
MLog.Debug(msg);
|
||||
}
|
||||
|
||||
public void Error(string msg)
|
||||
{
|
||||
MLog.Error(msg);
|
||||
}
|
||||
|
||||
public void Error(Exception exception)
|
||||
{
|
||||
MLog.Error(exception.Message, exception);
|
||||
}
|
||||
|
||||
public void Info(string msg)
|
||||
{
|
||||
MLog.Info(msg);
|
||||
}
|
||||
|
||||
public void Warn(string msg)
|
||||
{
|
||||
MLog.Warn(msg);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,25 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Security.Cryptography;
|
||||
using System.Text;
|
||||
|
||||
namespace Getf.Service.Transfer.Client.WinService.Helpers
|
||||
{
|
||||
public static class Md5Helper
|
||||
{
|
||||
public static string Md5(string str)
|
||||
{
|
||||
MD5 md5 = MD5.Create();
|
||||
byte[] data = Encoding.UTF8.GetBytes(str);
|
||||
data = md5.ComputeHash(data);
|
||||
|
||||
StringBuilder sb = new StringBuilder();
|
||||
for (int i = 0; i < data.Length; i++)
|
||||
{
|
||||
sb.Append(data[i].ToString("x2"));
|
||||
}
|
||||
return sb.ToString();
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,23 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
|
||||
namespace Getf.Service.Transfer.Client.WinService.Helpers
|
||||
{
|
||||
public static class TypeHelper
|
||||
{
|
||||
public static DateTime ToDateTime(long timeStamp)
|
||||
{
|
||||
System.DateTime startTime = TimeZone.CurrentTimeZone.ToLocalTime(new System.DateTime(1970, 1, 1)); // 当地时区
|
||||
DateTime dt = startTime.AddSeconds(timeStamp);
|
||||
return dt;
|
||||
}
|
||||
public static long GetTimeStamp()
|
||||
{
|
||||
System.DateTime startTime = TimeZone.CurrentTimeZone.ToLocalTime(new System.DateTime(1970, 1, 1, 0, 0, 0, 0));
|
||||
long t = (long)(DateTime.Now - startTime).TotalSeconds;
|
||||
return t;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,13 @@
|
||||
using Getf.Service.Transfer.Client.WinService.Entities;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
|
||||
namespace Getf.Service.Transfer.Client.WinService
|
||||
{
|
||||
public interface IDataHandler
|
||||
{
|
||||
TransInfo HandlerData(TransInfo srcData);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,36 @@
|
||||
using System.Reflection;
|
||||
using System.Runtime.CompilerServices;
|
||||
using System.Runtime.InteropServices;
|
||||
|
||||
// 有关程序集的一般信息由以下
|
||||
// 控制。更改这些特性值可修改
|
||||
// 与程序集关联的信息。
|
||||
[assembly: AssemblyTitle("Getf.Service.Transfer.Client.WinService")]
|
||||
[assembly: AssemblyDescription("")]
|
||||
[assembly: AssemblyConfiguration("")]
|
||||
[assembly: AssemblyCompany("Hewlett-Packard")]
|
||||
[assembly: AssemblyProduct("Getf.Service.Transfer.Client.WinService")]
|
||||
[assembly: AssemblyCopyright("Copyright © Hewlett-Packard 2018")]
|
||||
[assembly: AssemblyTrademark("")]
|
||||
[assembly: AssemblyCulture("")]
|
||||
|
||||
// 将 ComVisible 设置为 false 会使此程序集中的类型
|
||||
//对 COM 组件不可见。如果需要从 COM 访问此程序集中的类型
|
||||
//请将此类型的 ComVisible 特性设置为 true。
|
||||
[assembly: ComVisible(false)]
|
||||
|
||||
// 如果此项目向 COM 公开,则下列 GUID 用于类型库的 ID
|
||||
[assembly: Guid("41181ed6-f47d-485e-a8f1-b2bdb52dc902")]
|
||||
|
||||
// 程序集的版本信息由下列四个值组成:
|
||||
//
|
||||
// 主版本
|
||||
// 次版本
|
||||
// 生成号
|
||||
// 修订号
|
||||
//
|
||||
// 可以指定所有值,也可以使用以下所示的 "*" 预置版本号和修订号
|
||||
//通过使用 "*",如下所示:
|
||||
// [assembly: AssemblyVersion("1.0.*")]
|
||||
[assembly: AssemblyVersion("1.0.0.0")]
|
||||
[assembly: AssemblyFileVersion("1.0.0.0")]
|
||||
62
93_nei/Getf.Service.Transfer.Client.WinService/TcpClient.cs
Normal file
62
93_nei/Getf.Service.Transfer.Client.WinService/TcpClient.cs
Normal file
@@ -0,0 +1,62 @@
|
||||
using Getf.Service.Transfer.Client.WinService.Entities;
|
||||
using SuperSocket.ClientEngine;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Net;
|
||||
using System.Text;
|
||||
using System.Threading;
|
||||
|
||||
namespace Getf.Service.Transfer.Client.WinService
|
||||
{
|
||||
public class TcpClient : IDisposable
|
||||
{
|
||||
//private Thread SendHeartThread;
|
||||
|
||||
string Ip { get; set; }
|
||||
int Port { get; set; }
|
||||
EasyClient EasyClient;
|
||||
bool IsHeartLosted = false;
|
||||
Action<object, EventArgs> OnClosed;
|
||||
public bool IsConnected { get { return EasyClient.IsConnected; } }
|
||||
|
||||
public TcpClient(string ip, int port, Action<TransInfo> onDataGeted, Action<object, EventArgs> onConnected, Action<object, EventArgs> onClosed, Action<object, EventArgs> onError)
|
||||
{
|
||||
Ip = ip;
|
||||
Port = port;
|
||||
|
||||
EasyClient = new EasyClient();
|
||||
EasyClient.Initialize(new ReceiveFilter(), onDataGeted);
|
||||
EasyClient.Connected += new EventHandler(onConnected);
|
||||
EasyClient.Closed += EasyClient_Closed;
|
||||
EasyClient.Error += new EventHandler<ErrorEventArgs>(onError);
|
||||
EasyClient.ConnectAsync(new IPEndPoint(IPAddress.Parse(Ip), Port));
|
||||
OnClosed = onClosed;
|
||||
|
||||
//SendHeartThread = new Thread();
|
||||
}
|
||||
|
||||
public void Send(byte[] data)
|
||||
{
|
||||
EasyClient.Send(data);
|
||||
}
|
||||
|
||||
private void EasyClient_Closed(object sender, EventArgs e)
|
||||
{
|
||||
if (IsHeartLosted) return;
|
||||
OnClosed?.Invoke(sender, e);
|
||||
}
|
||||
|
||||
public void HeartLost()
|
||||
{
|
||||
//IsHeartLosted = true;
|
||||
EasyClient.Close();
|
||||
}
|
||||
|
||||
public void Dispose()
|
||||
{
|
||||
HeartLost();
|
||||
//SendHeartThread.Abort();
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,207 @@
|
||||
using Getf.Service.Transfer.Client.WinService.Helpers;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Net;
|
||||
using System.Net.Sockets;
|
||||
using System.Text;
|
||||
using System.Threading;
|
||||
|
||||
namespace Getf.Service.Transfer.Client.WinService
|
||||
{
|
||||
public class TcpClientService : IDisposable
|
||||
{
|
||||
private Socket _SocketClient;
|
||||
private readonly string _IP;
|
||||
private readonly int _Port;
|
||||
|
||||
public event Action<TcpClientService> OnError;
|
||||
|
||||
public event Action<TcpClientService> OnConnected;
|
||||
|
||||
public event Action<TcpClientService, byte[]> OnDataGeted;
|
||||
|
||||
private byte[] _Buffer;
|
||||
|
||||
public bool IsConnected = false;
|
||||
|
||||
bool IsDisposed = false;
|
||||
LogHelper _LogHelper;
|
||||
|
||||
public TcpClientService(string ip, int port)
|
||||
{
|
||||
_IP = ip;
|
||||
_Port = port;
|
||||
_LogHelper = new LogHelper();
|
||||
_Buffer = new byte[100 * 1024 * 1024];
|
||||
}
|
||||
|
||||
public void Connect()
|
||||
{
|
||||
if (_SocketClient != null)
|
||||
{
|
||||
return;
|
||||
}
|
||||
_SocketClient = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
|
||||
_SocketClient.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.KeepAlive, true);
|
||||
IPAddress ipAddress = IPAddress.Parse(_IP);
|
||||
var endPoint = new IPEndPoint(ipAddress, _Port);
|
||||
_LogHelper.Debug("开始连接");
|
||||
_SocketClient.BeginConnect(endPoint, new AsyncCallback(Connected), null);
|
||||
}
|
||||
|
||||
private void Connected(IAsyncResult asyncResult)
|
||||
{
|
||||
try
|
||||
{
|
||||
_SocketClient.EndConnect(asyncResult);
|
||||
_LogHelper.Debug("连接成功");
|
||||
IsConnected = true;
|
||||
TriggerConnected();
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
_LogHelper.Error("连接失败原因为:" + e.Message);
|
||||
TriggerError();
|
||||
}
|
||||
}
|
||||
|
||||
public void ReceiveLoop()
|
||||
{
|
||||
Thread thread = new Thread(() =>
|
||||
{
|
||||
while (!IsDisposed)
|
||||
{
|
||||
Receive();
|
||||
}
|
||||
});
|
||||
thread.Start();
|
||||
}
|
||||
|
||||
public void Receive()
|
||||
{
|
||||
ManualResetEvent manualResetEvent = new ManualResetEvent(false);
|
||||
_LogHelper.Debug("开始监听接收数据");
|
||||
try
|
||||
{
|
||||
_SocketClient.BeginReceive(_Buffer, 0, _Buffer.Length, SocketFlags.None, new AsyncCallback(Received), new object[] { manualResetEvent, _Buffer });
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
_LogHelper.Error("接收数据失败原因为:" + e.Message);
|
||||
Thread.Sleep(100000);
|
||||
manualResetEvent.Set();
|
||||
}
|
||||
manualResetEvent.WaitOne();
|
||||
manualResetEvent.Dispose();
|
||||
}
|
||||
|
||||
private void Received(IAsyncResult asyncResult)
|
||||
{
|
||||
if (IsDisposed)
|
||||
{
|
||||
return;
|
||||
}
|
||||
var objs = asyncResult.AsyncState as object[];
|
||||
var manualResetEvent = objs[0] as ManualResetEvent;
|
||||
var buffer = objs[1] as byte[];
|
||||
try
|
||||
{
|
||||
var length = _SocketClient.EndReceive(asyncResult);
|
||||
_LogHelper.Debug("接收到服务器推送的数据");
|
||||
TriggerDataGeted(buffer);
|
||||
if (buffer != null)
|
||||
{
|
||||
Array.Clear(buffer, 0, length);
|
||||
}
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
_LogHelper.Error("接收到服务器推送的数据失败原因为:" + e.Message);
|
||||
TriggerError();
|
||||
}
|
||||
manualResetEvent.Set();
|
||||
}
|
||||
|
||||
public void Send(byte[] buffer)
|
||||
{
|
||||
_LogHelper.Debug("开始发送数据");
|
||||
try
|
||||
{
|
||||
_SocketClient.BeginSend(buffer, 0, buffer.Length, SocketFlags.None, new AsyncCallback(Sended), null);
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
_LogHelper.Error("发送数据失败原因为:" + e.Message);
|
||||
TriggerError();
|
||||
}
|
||||
}
|
||||
|
||||
private void Sended(IAsyncResult asyncResult)
|
||||
{
|
||||
if (IsDisposed)
|
||||
{
|
||||
return;
|
||||
}
|
||||
try
|
||||
{
|
||||
_SocketClient.EndSend(asyncResult);
|
||||
_LogHelper.Debug("发送数据成功");
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
_LogHelper.Error("发送数据失败原因为:" + e.Message);
|
||||
TriggerError();
|
||||
}
|
||||
}
|
||||
|
||||
private void TriggerError()
|
||||
{
|
||||
IsConnected = false;
|
||||
if (OnError != null)
|
||||
{
|
||||
OnError(this);
|
||||
}
|
||||
}
|
||||
private void TriggerConnected()
|
||||
{
|
||||
if (OnConnected != null)
|
||||
{
|
||||
OnConnected(this);
|
||||
}
|
||||
}
|
||||
|
||||
private void TriggerDataGeted(byte[] buffer)
|
||||
{
|
||||
if (OnDataGeted != null)
|
||||
{
|
||||
OnDataGeted(this, buffer);
|
||||
}
|
||||
}
|
||||
|
||||
public void Dispose()
|
||||
{
|
||||
IsDisposed = true;
|
||||
try
|
||||
{
|
||||
_Buffer = null;
|
||||
if (_SocketClient != null)
|
||||
{
|
||||
try
|
||||
{
|
||||
_SocketClient.Disconnect(false);
|
||||
}
|
||||
catch
|
||||
{
|
||||
|
||||
}
|
||||
_SocketClient.Dispose();
|
||||
}
|
||||
}
|
||||
catch
|
||||
{
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
Binary file not shown.
@@ -0,0 +1,8 @@
|
||||
<?xml version="1.0" encoding="utf-8" ?>
|
||||
<configuration>
|
||||
<appSettings>
|
||||
<add key="ServiceAddressInfo" value="127.0.0.1:8888" />
|
||||
<add key="HandlerClassInfo" value="" />
|
||||
<add key="AppName" value="Xzsp" />
|
||||
</appSettings>
|
||||
</configuration>
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
File diff suppressed because it is too large
Load Diff
Binary file not shown.
Binary file not shown.
File diff suppressed because it is too large
Load Diff
Binary file not shown.
32464
93_nei/Getf.Service.Transfer.Client.WinService/bin/Debug/log4net.xml
Normal file
32464
93_nei/Getf.Service.Transfer.Client.WinService/bin/Debug/log4net.xml
Normal file
File diff suppressed because it is too large
Load Diff
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user