init commit all code

This commit is contained in:
路 范
2021-12-20 17:17:49 +08:00
parent 66d48149a6
commit f60ad763ed
1325 changed files with 1744918 additions and 0 deletions

View File

@@ -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>

View File

@@ -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();
}
}
}
}
}

View File

@@ -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
};
}
}
}

View File

@@ -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
};
}
}
}

View File

@@ -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));
}
}
}

View File

@@ -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")]

View File

@@ -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>

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,4 @@
// <autogenerated />
using System;
using System.Reflection;
[assembly: global::System.Runtime.Versioning.TargetFrameworkAttribute(".NETFramework,Version=v4.0", FrameworkDisplayName = ".NET Framework 4")]

View File

@@ -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

View File

@@ -0,0 +1,4 @@
<?xml version="1.0" encoding="utf-8"?>
<packages>
<package id="Newtonsoft.Json" version="12.0.1" targetFramework="net40" />
</packages>

View File

@@ -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>

View File

@@ -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>

View File

@@ -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();
}
}
}

View File

@@ -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")]

View File

@@ -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>

View File

@@ -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>

View File

@@ -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>

View File

@@ -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
异常内容:超过一分钟没收到心跳包的反馈信息

View File

@@ -0,0 +1,4 @@
异常时间2021-12-13 15:03:02,204
异常级别ERROR
异常内容:发生错误:请求客户端已断开

View File

@@ -0,0 +1,4 @@
异常时间2021-12-20 16:31:30,394
异常级别ERROR
异常内容:发生错误:请求客户端已断开

View File

@@ -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>

View File

@@ -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.&lt;init&gt;(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.&lt;init&gt;(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

File diff suppressed because it is too large Load Diff

View File

@@ -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&quot;.txt&quot;" />
<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>
<!--&lt; &gt; = <> %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&quot;.txt&quot;" />
<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>
<!--&lt; &gt; = <> %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&quot;.txt&quot;" />
<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&quot;.txt&quot;" />
<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>

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,4 @@
// <autogenerated />
using System;
using System.Reflection;
[assembly: global::System.Runtime.Versioning.TargetFrameworkAttribute(".NETFramework,Version=v4.0", FrameworkDisplayName = ".NET Framework 4")]

View File

@@ -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

View File

@@ -0,0 +1,4 @@
<?xml version="1.0" encoding="utf-8"?>
<packages>
<package id="Newtonsoft.Json" version="12.0.1" targetFramework="net40" />
</packages>

View 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

View File

@@ -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>

View File

@@ -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();
}
}
}

View 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();
}
}
}

View File

@@ -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;
}
}
}

View File

@@ -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; }
}
}

View File

@@ -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; }
}
}

View File

@@ -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();
}
}
}

View File

@@ -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; }
}
}

View File

@@ -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>

View File

@@ -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>

View File

@@ -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);
}
}
}

View File

@@ -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();
}
}
}

View File

@@ -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;
}
}
}

View File

@@ -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);
}
}

View File

@@ -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")]

View 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();
}
}
}

View File

@@ -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
{
}
}
}
}

View File

@@ -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>

File diff suppressed because it is too large Load Diff

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