小编Pat*_*eam的帖子

global.asax Application_Error未触发

我的global.asax似乎没有解雇.我有:

void Application_Error(object sender, EventArgs e) 
{ 
    // Code that runs when an unhandled error occurs
    Server.Transfer("~/ExceptionFormView.aspx");
}
Run Code Online (Sandbox Code Playgroud)

In my web.config, I don't have anything like CustomErrors. As I want everything to be handled by Global.asax and transferred to ExceptionFormView.aspx.

It works fine locally, but not when we deploy to servers. Any thoughts?

Do I need PrecompiledApp.config?

asp.net global-asax

17
推荐指数
2
解决办法
2万
查看次数

如何以编程方式获取nuget缓存文件夹位置

我需要从.NET应用程序(不是.NET Core应用程序)获取NuGet存储其包的目录列表.

我知道默认情况下它是C:\Users\[YourUsername]\.nuget\packages一个选项是迭代所有用户假设当前运行该进程的Windows用户拥有访问其他用户数据的权限.此外,如果用户更改了此默认目录,我会被卡住.

一个答案是提供在这里通过

nuget locals packages-cache -list
Run Code Online (Sandbox Code Playgroud)

但它不是.NET代码,根据答案它似乎是一个过时的选项.


此外,我想了解.NET Core NuGet包位置的逻辑,因为我可以在3个位置看到一些.NET Core包:

  • C:\Program Files\dotnet\shared\Microsoft.NETCore.App (不包含AspNetCore包)
  • C:\Users\[UserName]\.nuget\packages (包含AspNetCore包)
  • C:\Program Files (x86)\Microsoft SDKs\NuGetPackages (包含AspNetCore包)

.net nuget nuget-package

15
推荐指数
1
解决办法
721
查看次数

用于分析进程中加载​​的本机DLL和程序集的内存占用量的工具?

根据任务管理器,我有一个持有130MB内存的进程,根据dotTrace只有11MB的实时.NET对象,所以我想知道其他120MB发生了什么?

我需要一个工具来列出进程中加载​​的程序集和本机DLL,获取正在处理的图像的大小,并且对于每个程序集,测量JITed方法的内存占用量.

来自SysInternal的ListDlls部分地完成了这项工作.但它不测量JITed代码大小,它只提供原始数据.理想情况下,我想要一个UI来分析和总结这些数据.

最近,Visual Studio团队报告使用PerfView工具进行了此类分析.这在博客文章Visual Studio 11 Beta性能部分#1部分中说明:最大的VM消费者 - DLL.有人有经验和反馈使用PerfView分析本机Dll和程序集的足迹吗?

除了ListDllsPerfView,你会推荐其他任何工具吗?


好吧,Simon Mourier建议的VMMAP似乎是更适合这项任务的工具.在此输入图像描述VMMAP显示大量工作集内存进入托管堆栈(绿色下面为113MB),因此问题与.NET对象的关系比非托管内存更多.绿色锯齿曲线,只是加载/卸载会话的时间表.出于某些原因,我的第一个措施是错误的:

  • dotTrace告诉我,我分配了41MB的.NET对象,
  • WMMAP显示一个180MB的工作集(任务管理器显示相似的数字)
  • WMMAP显示GC分配的113MB托管堆.这个托管堆内存中有90MB位于工作集中:

所以我的计划是:

  1. 确定GC为41MB .NET对象分配113MB托管堆的原因?(这样的数字是正常的吗?是因为高度碎片?)
  2. 努力缩小这个分配的41MB .NET对象!

.net memory dll process memory-footprint

13
推荐指数
1
解决办法
8195
查看次数

DataTables对字符串进行排序而不是数字

我使用jquery.datatables来显示datatables列中的数字.数字被格式化为具有数千个单位之间的空格(如123 456 789).不幸的是,这个数字格式化了字符串排序而不是数字排序(请参阅本问题末尾的屏幕截图).

我已经确定:

  • function _fnSort(oSettings, bApplyClasses) { 是排序的核心功能.
  • 在此函数中,使用动态函数排序方法(如果if (!window.runtime) {为true则执行)
  • 使用的字符串排序函数是以下两个函数.

    /*
    * text sorting
    */
    "string-asc": function(a, b) {
        var x = a.toLowerCase();
        var y = b.toLowerCase();
        return ((x < y) ? -1 : ((x > y) ? 1 : 0));
    },
    
    "string-desc": function(a, b) {
        var x = a.toLowerCase();
        var y = b.toLowerCase();
        return ((x < y) ? 1 : ((x > …
    Run Code Online (Sandbox Code Playgroud)

sorting jquery datatables

11
推荐指数
1
解决办法
1万
查看次数

为什么在浏览器 &gt; 开发工具 &gt; 网络中的 Blazor WebAssembly 应用程序上看不到 DLL 和 dotnet.wasm?

我正在摆弄默认的 VS2019 (16.6.5) Blazor WebAssembly 项目。但是,当我查看Chrome(或 Firefox 或 Edge)> Developer Tools [F12] > network并启用Disable Cache 时,我没有看到加载太多内容?

Blazor wasm

Dev Tool > Sources 中,我可以看到dotnet.wasm已以某种方式加载。

来源中的 dotnet.wasm

通过阅读一些像这样的文章,我看到了显示 DLL 和 wasm 正在加载的屏幕截图。

Blazor wasm 上的 Devb 工具网络

为什么我看不到?


编辑:好的,只有在从 VS2019 开始调试 Blazor WebAssembly 项目时,我才成功地看到 DLL 像我想要的那样加载。当我在没有调试的情况下启动项目时,我仍然获得与第一个屏幕截图相同的轻量级负载。为什么?

.net webassembly blazor

11
推荐指数
1
解决办法
1131
查看次数

PDF 文档的移动设备上出现“没有启用的插件支持此 MIME 类型”消息

最近,Google 搜索控制台报告了我们的 ASP.NET 网站上存在指向 PDF 文档的 URL 的覆盖问题。

到目前为止,在我们的web.config文件中,我们没有任何针对 PDF 文档的 MIME 设置。但事实上,无论是在本地主机上还是在生产环境中,在 Chrome 中,在移动上下文中PDF url 都会生成带有消息的空内容no enabled plugin supports this MIME type

没有启用的插件支持此 MIME 类型

在桌面上下文中,PDF 文档直接在 Chrome 中打开。

使用该文件(如下)更新web.config文件会在移动和桌面环境中导致相同的描述行为。

  <system.webServer>
      <staticContent>
        <remove fileExtension=".pdf" />
        <mimeMap fileExtension=".pdf" mimeType="application/pdf"  />
      </staticContent>
  <system.webServer>
Run Code Online (Sandbox Code Playgroud)

使用该文件(如下)更新web.config文件会强制浏览器在两种上下文中下载 PDF。

  <system.webServer>
      <staticContent>
        <remove fileExtension=".pdf" />
        <mimeMap fileExtension=".pdf" mimeType="application/octet-stream"  />
      </staticContent>
  <system.webServer>
Run Code Online (Sandbox Code Playgroud)

到目前为止,这是最好的解决方案,因为它允许移动用户获取 PDF,这将修复谷歌警告。

不过,我想在桌面上下文中的浏览器本身中打开 PDF,并在移动上下文中下载它。是否可以?

pdf asp.net-mvc mime web-config google-search-console

10
推荐指数
2
解决办法
2万
查看次数

用NUnit驱动NDepend

是否可以使用NUnit使用NDepend运行CQL查询?能够将NDepend dll包含在UnitTests库中并编写如下测试会很高兴:

[Test] public void
DomainAssemblyHasNoDatabaseDependencies
...
Run Code Online (Sandbox Code Playgroud)

或类似的东西.

这样可以很容易地与Team City集成,并且如果任何静态分析测试失败,则会自动使构建失败.

build-automation teamcity nunit ndepend cqlinq

7
推荐指数
1
解决办法
291
查看次数

如何在类型属性上限制NDepend方法查询

我试图让NDepend使用标准的"方法太大"查询的修改版本来识别长方法.

我不想报告开发人员几乎无法控制的长方法,所以我使用DebuggerNonUserCode属性过滤掉生成的代码InitializeComponent().

不幸的是,我仍然得到一些误报,因为报告了生成类型中的方法.问题是虽然类型本身具有DebuggerNonUserCode属性,但方法没有,因此尽管它们是生成的,但它们仍包含在输出中.

我正在寻找类似于类型和方法之间的连接:给我所有没有DebuggerNonUserCode属性的类型并对其运行查询,但我无法弄清楚如何在CQL中表达这一点.

对于某些程序集,我可以简单地过滤全名,但不幸的是我们的一些程序集混合了开发人员制作和生成的类型.不幸的IsGeneratedByCompiler是,在这种情况下也不能使用.

我的查询

WARN IF Count > 0 IN SELECT METHODS WHERE 
   NbLinesOfCode > 30 AND
   !HasAttribute "System.Diagnostics.DebuggerNonUserCodeAttribute" AND
   !NameIs "InitializeComponent()"
   ORDER BY NbLinesOfCode DESC
Run Code Online (Sandbox Code Playgroud)

c# ndepend cql cqlinq

7
推荐指数
1
解决办法
1564
查看次数

使用NDepend查找方法的所有用法(包括通过接口)

使用NDepend,我如何找到特定方法或属性的所有,直接和间接使用?

特别是,我需要找到通过使用路径某处的接口发生的用法.谢谢!

c# ndepend cqlinq

7
推荐指数
1
解决办法
1529
查看次数

如何在高DPI上扩展Windows窗体按钮的图像?

我找不到在Windows窗体按钮中缩放图像的方法.请参阅下面DPI 200%上显示的Windows窗体设计器的样子(我知道Windows窗体设计器应仅用于DPI 100%/ 96,此屏幕截图只是说明了我的观点).

当按钮大小正确缩放(34x33)时,按钮大小中的图像不会缩放/拉伸/缩放(它仍然是16x16).我做了很多尝试来解决这个问题:

  • 父控件AutoScaleMode设置为Font,将其设置为Dpi不能使其工作.
  • 将按钮设置AutoSizetruefalse不使其工作.
  • 将按钮或父控件设置AutoSizeMode为任何值都不起作用.
  • 没有Button.ImageLayout可以设置为StretchZoom.
  • 使用新App.Config设置<add key="EnableWindowsFormsHighDpiAutoResizing" value="true" />无法使其正常工作.
  • 更改按钮FlatStyleImageAlign不使其工作.

你是如何在你的应用中解决这个问题的?

Windows窗体按钮图像无法缩放

button dpi scale windows-forms-designer winforms

7
推荐指数
2
解决办法
4871
查看次数