.net/c# - 文章列表

共 170 页

  • .NET程序报错Could not load file or assembly与0x80131040的排查方法(程序集版本绑定失败、bindingRedirect与Fuslogvw定位)

    0x80131040是CLR找到dll但程序集版本与请求不一致时抛出的FileLoadException。文中给出排查顺序:对照报错里的期望版本与bin目录实际版本、区分FileNotFoundException与BadImageFormatException、用Consolidate统一包版本、bindingRedirect的写法与三个易错点、AutoGenerateBindingRedirects开关、fuslogvw抓取绑定日志,以及.NET Core之后不再有重定向机制的差别。

  • C#异步调用后界面卡死与请求无响应的排查方法(Task.Result死锁、SynchronizationContext与ConfigureAwait定位)

    同一个异步方法在控制台正常、在WinForms与WPF上一执行就卡死,多半是Task.Result同步等待与SynchronizationContext撞在一起。本篇讲清await捕获上下文导致死锁的机制、哪些运行环境带上下文、用堆栈与SynchronizationContext.Current确认,以及await上抛、ConfigureAwait(false)、Task.Run包裹、GetAwaiter().GetResult()四种改法,附带async void、fire and forget、CS1996与CS9217几个连带问题。

  • C#跨线程访问控件报错Cross-thread operation not valid的解决方法(InvokeRequired、BeginInvoke、Dispatcher与InvokeAsync)

    按Cross-thread operation not valid与The calling thread cannot access this object两种报错串讲:UI线程消息泵为何不让别的线程改控件、InvokeRequired加Invoke的标准写法与句柄未创建时的另一种报错、.NET 9才有的Control.InvokeAsync(8.0和Framework没有)、ConfigureAwait(false)的坑、Progress报告进度、Wait与Invoke互等死锁、WPF的CheckAccess与优先级、三种定时器差别。

  • ASP.NET Core启动报错Unable to resolve service for type的解决方法(依赖注入注册遗漏、生命周期不匹配与循环依赖排查)

    ASP.NET Core报Unable to resolve service for type时,attempting to activate后面的类型不是问题所在,找不到的才是它前面那个。这篇按注册遗漏的六种形态逐个过一遍:只注册实现类、泛型写法、键控服务漏[FromKeyedServices]、扫描注册被条件筛掉、Controller没进容器、扩展方法忘了调;再讲生命周期错配那条Cannot consume scoped service与循环依赖的拆法,以及ValidateOnBuild默认开启之后老项目为什么一升级就报错。

  • ASP.NET Core部署到IIS报错HTTP Error 500.30与502.5的排查与解决方法(ANCM、stdout日志、应用池配置)

    ASP.NET Core站点部署到IIS后报HTTP Error 500.30 - ANCM In-Process Start Failure,页面只有一行错误码。给出排查链路:直接用dotnet运行看异常堆栈、确认装的是Hosting Bundle而不是SDK、开启stdout日志、解读事件查看器里的ErrorCode、处理应用池32位开关与ASPNETCORE_ENVIRONMENT。

  • C# dynamic判断是否有某个属性

    if(((IDictionarystring,object)data).ContainsKey(propertyname)){//包含此属性}

  • iis运行.net core 程序报502错误

    iis运行.netcore程序报502错误查看Windows应用程序日志显示ApplicationMACHINE/WEBROOT/APPHOST/APISITEwithphysicalrootD:\wwwroot\xxx\failedtostartprocesswithcommandlinedotnet.\xxx.dll,ErrorCode=0x80070002:0.解决方式如下1、在cmd中输入

  • Multipart body length limit 134217728 exceeded

    .netpost大文件时,报错Multipartbodylengthlimit134217728exceeded解决方法为Startup.cs中添加//解决Multipartbodylengthlimit134217728exceededservices.ConfigureFormOptions(x={x.ValueLengthLimit=int.MaxValue;x.MultipartBodyL

  • Error 0x80240017: Failed to execute MSU package.

    MicrosoftVisualC++2015Redistributable(x64)安装失败查看日志出现下面错误Error0x80240017:FailedtoexecuteMSUpackage.需要依次安装下面补丁:1、KB2919442https://www.microsoft.com/zh-cn/download/details.aspx?id=421532、KB2919355https:/

  • c# ZIP压缩文件

    需要引用命名空间System.IO.Compressionusing(MemoryStreamms=newMemoryStream()){using(ZipArchivezipArchive=newZipArchive(ms,ZipArchiveMode.Create,true)){//添加文件ZipArchiveEntryentry=zipArchive.CreateEntry(abc1.xls