一切福田,不離方寸,從心而覓,感無不通。

Category Archives: .Net Core

EF查询视图返回重复数据的问题

在特殊的情况下查询过滤视图 会出现重复的数据结果集(返回的多条数据结果一致)。 原因是啥:主键 在数据库设计的理念中:每个表都应该的唯一的主键。但视图不同,EF中会自动按视图的最前几个非空型字段设置为主键。 如果在某些特殊的查询情况下。前几列数据一致时,EF就会返回重复数据。 解决方案: 1. 在使用的视图后 加入 AsNoTracking 阻止EF缓存数据集。(EF会依据主键建立数据缓存,实现后续的级联操作)。 2. 修改视图列顺序,将能区分内容的列放入最前列中,并保证为非空类型。   建议使用第二方案。   from:https://www.cnblogs.com/shikyoh/p/8794541.html

龙生   13 Apr 2022
View Details

C# netcore 开发WebService(Soap)

在NetCore时代开发WebService和FrameWork时代差别有一点儿大,毕竟NetCore是跨平台的一个框架,不过使用起来也得很简单,下面我就使用Visual Studio2019开发一个示例服务程序。你依然要注意我这个我写的这个demo是soap1.2。在开发前你必须清楚这一点,因为有很多时候SOAP1.1和SOAP1.2 并不通用。至于soap1.1我暂时不用netcore写示例了。 下面是开发详细过程: (1)创建新项目,选择ASP.NET Core Web应用程序 ,如下图 (2)配置新项目,为自己的项目起个名字,然后点击下一步,如下图 (3)进入模板选择页面,选择空,如下图 (4)项目建立好后需要我们通过NuGet引用开发依赖包  SoapCore,如下图一样添加引用。 (5)这时我们新一个类用于示例的返回和接受参数,类名StudentModel 代码如下:

  (6)添加接口约束IContract,我们和framework下保持一致,实现两个方法,Get和Add代码如下:

  (7)添加服务实现类StudentService,来实现我们的约定服务接口。代码如下:

  (8)在netcore中添加注入,这个想必不会陌生吧,现在netcore的注入已经很普遍了,修改 Startup.cs类中的ConfigureServices方法,添加代码如下:

  (9)添加服务发布接口地址,修改Startup.cs类中的Configure方法,在最后修改UseEndpoints这一部分代码如下:

  (10)点击Visual Studio2019上的运行按钮,此时便可以在浏览器里预览了。直接运行看到的页面是错误的地址,需要手动改一下地址如下:https://localhost:44376/StudentService.asmx,添加后半部分StudentService.asmx。我们便可以看到正常的返回了,如下图: 至此我们已经完成了一个简单的WebService,这个服务实现两个接口,一个Get 一个Add方法。 可以下载我示例源码百度网盘链接:https://pan.baidu.com/s/1wCXaGyThXTuS04aupJFsbg 查看提取码请先点击下方的捐赠按钮。 原创作品 相关文章:C# net framework 开发WebService(Soap)   from:https://lebang2020.cn/details/210110njneqn2f.html

龙生   08 Apr 2022
View Details

关于C# webservices 返回的soap节点标签会包含方法名+result的修改

关于C# webservices 返回的soap节点标签会包含方法名+result的修改 有时候做项目的时候需要用到webservices与其他系统进行交互,但是当使用asp.net开发webservice的时候,webservices返回数据的xml节点标签会默认带 方法名+result 如下图: 这样的返回方式不利于客户端进行解析 我们可以在方法头添加属性: 这样返回的数据就会变化   from:https://blog.csdn.net/qq_40099189/article/details/107120068

龙生   08 Apr 2022
View Details

C#与Java互通AES算法加密解密

利用AES加密算法对报文进行加密解密,实现C#与Java互通,网上查了一堆也许是因为版本的原因都用不了,于是还是静心下来自己写个

龙生   11 Mar 2022
View Details

解决出现“未能加载文件或程序集“System.Net.Http.Formatting, Version=5.2.3.0”的问题

我们在使用C#开发WebApi等相关程序时,可能因为某些原因会出现如下图所示的错误,原因就是我们在编译的时候,使用的dll库可能和最初的发生了改变,导致版本不一致造成的。

龙生   23 Feb 2022
View Details

Allow Zero Datetime=True产生的问题

MySQL连接字符串里加上了“Allow Zero Datetime=True”,导致错误:

纠基原因,这句配置允许零日期后,MySQL与.Net的日期类型是不一样的,导致转换失败。去掉就正常了,默认值是False。

 

龙生   17 Feb 2022
View Details

.NET 大数据量并发解决方案

大并发大数据量请求一般会分为几种情况:

大量的用户同时对系统的不同功能页面进行查找、更新操作
大量的用户同时对系统的同一个页面,同一个表的大数据量进行查询操作
大量的用户同时对系统的同一个页面,同一个表进行更新操作

龙生   28 Jan 2022
View Details

干货:详解asp.net Core3.0区域与路由配置的方法

在ASP.NET Core 3.0中路由配置和2.0不一样了 一、MVC 服务注册 ASP.NET Core 3.0 添加了用于注册内部的 MVC 方案的新选项Startup.ConfigureServices。 三个新的顶级扩展方法与 MVC 方案上IServiceCollection可用。 模板使用这些新方法,而不是UseMvc。 但是,AddMvc继续像它已在以前的版本。 下面的示例将添加对控制器和与 API 相关的功能,但不是视图或页面的支持。 API 模板使用此代码:

  下面的示例将添加对控制器、 与 API 相关的功能,和视图,但不是页面的支持。 Web 应用程序 (MVC) 模板使用此代码:

  下面的示例添加支持 Razor 页面和最小控制器支持。 Web 应用程序模板使用此代码:

  此外可以组合的新方法。 下面的示例是等效于调用AddMvcASP.NET Core 2.2 中:

  二、Startup.Configure配置 一般不建议: 添加UseRouting。 如果该应用程序调用UseStaticFiles,将置于UseStaticFiles之前 UseRouting。 如果应用使用身份验证/授权功能,如AuthorizePage或[Authorize],将对UseAuthentication并UseAuthorization后 UseRouting。 如果应用使用CORS功能,如[EnableCors],将放置UseCors下一步。 替换UseMvc或UseSignalR与UseEndpoints。 以下是一种Startup.Configure典型的 ASP.NET Core 2.2 应用中:

  现在的控制器映射内发生UseEndpoints。 添加MapControllers如果应用使用属性路由。 由于路由包括对许多框架在 ASP.NET Core 3.0 或更高版本的支持,添加属性路由的控制器是参加。 将为以下内容: MapRoute 使用 MapControllerRoute MapAreaRoute 使用 MapAreaControllerRoute 由于路由现在包括对不止是 MVC 的支持,已更改了术语进行明确说明他们所做的这些方法。 如传统路由MapControllerRoute / MapAreaControllerRoute / MapDefaultControllerRoute它们要添加的顺序应用。 将第一位更具体的路由 (如某一区域的路由)。 如下示例中: […]

龙生   10 Jan 2022
View Details

.NET Core log4net 使用

log4net .NET Core 版使用,log4net 2.0.7版发布也有一段时间了,从2.0.6 版开始就已经支持.NET Core。 之前有介绍NLog .NET Core版的使用,ASP.NET Core 开发-Logging 使用NLog 写日志文件。 ASP.NET Core已经内置了日志支持,可以轻松输出到控制台。使用log4net 将日志写入到文件及输出控制台。   .NET Core项目使用 新建一个 .NET Core 项目,选择控制台应用程序。 添加引用: Install-Package log4net   使用简单配置,将日志输出至控制台,跟之前.NET 版本略微有些区别,需要指定Repository 。

运行程序显示如下:   下面增加配置,让其输出至文件。 在项目中添加一个配置文件,这里添加一个log4net.config ,内容如下:

这里定义了三个 Appender,都会起作用,然后日志级别ALL 所有的日志都会记录。 更改Program.cs 代码如下:

加了指定配置文件。运行程序会生成一个文件夹和一个文件,因为重新定义了ConsoleAppender,控制台输出也有所不同。   ASP.NET Core项目使用 在ASP.NET Core 使用也是一样,可以在Program.cs或Startup.cs 中指定Repository,然后控制器或中间件中获取对象使用。 以下代码是在Startup 构造函数中初始化log4net

然后在Configure 中加了一个记录日志

  在HomeController 也增加了:

运行应用结果如下,然后对应的文件会有日志记录。   对于输出中文乱码,需要增加编码引用,以及代码。NLog 那篇文章有介绍。写到日志文件是没有问题的。   参考文档: http://logging.apache.org/log4net/release/manual/configuration.html http://logging.apache.org/log4net/release/config-examples.html   如果你觉得本文对你有帮助,请点击“推荐”,谢谢。 ASP.NET Core 3.1 新书发布 《ASP.NET Core项目开发实战入门》 京东当当淘宝 GitHub:https://github.com/linezero 博客示例代码GitHub:https://github.com/linezero/Blog from:https://www.cnblogs.com/linezero/p/log4net.html

龙生   02 Dec 2021
View Details