小编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和程序集的足迹吗?

除了ListDlls和PerfView,你会推荐其他任何工具吗?


好吧,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不能使其工作.
  • 将按钮设置AutoSize为true或false不使其工作.
  • 将按钮或父控件设置AutoSizeMode为任何值都不起作用.
  • 没有Button.ImageLayout可以设置为Stretch或Zoom.
  • 使用新App.Config设置<add key="EnableWindowsFormsHighDpiAutoResizing" value="true" />无法使其正常工作.
  • 更改按钮FlatStyle或ImageAlign不使其工作.

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

Windows窗体按钮图像无法缩放

button dpi scale windows-forms-designer winforms

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