【问题标题】:Locate Blazor Webassembly downloaded .dll files on disk?在磁盘上找到 Blazor Webassembly 下载的 .dll 文件?
【发布时间】:2021-01-26 12:13:17
【问题描述】:

我想定位 Blazor (Web Assembly) 已发送到 Chrome 等浏览器的 .dll 文件,以查看 .dll strong> 文件是否可以被反汇编程序(如 Reflector)读取。我在 Chrome 中找到了文件

开发者工具(F12) > 应用程序选项卡 > 缓存存储

但在磁盘上找不到它们。

更新:假设我想要访问其他人的 Blazor 网站的 .dll 文件。 网站访问者计算机上的以下文件在哪里?

【问题讨论】:

  • 目前的答案基本正确。您在上面的屏幕截图(带有缓存)上看到自己,这些文件是通过 url 从您的服务器 (localhost:58996/_framework/ClassLibrary2.dll) 获取的。因此,任何想要获得它们的人都不需要找到 chrome 存储缓存的位置和方式——他只需请求这个 url
  • @Evk 但是当我这样做时,我得到 404.11 Not Found 状态并显示以下错误消息:请求过滤模块配置为拒绝包含双转义序列的请求。
  • 尝试使用我评论中的 url(所以删除所有 sha256 等,只留下 dll 的路径)
  • 这是一篇描述一些细节的好文章:blog.ndepend.com/blazor-internals-you-need-to-know

标签: c# asp.net-core blazor webassembly


【解决方案1】:

你可以试试这个工具 - https://www.nirsoft.net/utils/chrome_cache_view.html

在 windows Chrome 缓存位置是 - C:\Users\%USERNAME%\AppData\Local\Google\Chrome\User Data\Default\Cache

此实用程序也适用于最新的 Microsoft Edge for Chrome。它在 Windows 上的缓存位置是 - C:\Users\%USERNAME%\AppData\Local\Microsoft\Edge\User Data\Default\Cache

【讨论】:

    【解决方案2】:

    正如@Gursharan 指出的那样,它们保存在存储在%LOCALAPPDATA%\Google\Chrome\User Data\Default\Cache 中的二进制数据库中。

    如果你想从本地磁盘读取它们,你需要使用一个实用程序来读取 Chrome 的二进制缓存。

    您也可以使用 Chrome 缓存存储中显示的Request URL 下载它们。

    例如:

    1. 关注sample blazor app
    2. 在 Chrome 开发者工具中打开 Application > Cache Storage > blazor-resources/awesome-blazor-browser
    3. 选择一个 .dll 资源。
    4. 在标题选项卡中,突出显示 Request URL 直到 .dll 扩展名(下方以黄色突出显示)
    5. 右键单击并选择Go To(如底部屏幕截图所示)
    6. 如果程序集已签名并受信任,它将自动下载。例如,netstandard.dll。否则需要在权限提示中点击保持。

    【讨论】:

      【解决方案3】:

      .dll 文件将位于项目文件夹中,IIS Express 直接从那里运行项目,例如如果在Developers tool(F12) > Application tab > Cache Storage 上看到名称中有/_framework/_bin/Blazor%20WebAssembly.dll.sha256-dTdRmYzYOZYhTcSkqvmzcmpD/Pi03agjQ4oZTOgt8o8= 之类的内容,那么在调试时会在此处找到:

      <project root>\bin\Debug\netstandard2.1\wwwroot\_framework\_bin

      【讨论】:

      • 我想从 Chrome 中获取它们。
      • @nAviD “从 Chrome 获取它们”是什么意思? Chrome 仅向 IIS Express 发出请求,该应用程序由 IIS Express 托管,并从答案中的文件夹提供服务,包括您从磁盘询问的 .dll 文件
      • dll文件将被Chrome下载并运行。我想得到那些 dll 文件。假设我无权访问 IIS Server 或项目我只想访问网站并找到下载的 dll 文件
      • dll文件将被chrome下载并运行”是什么意思? Chrome 运行已编译的二进制 WASM Mono.NET,运行时被引导并从磁盘加载并执行这些 .dll 文件。也许读这个stackoverflow.blog/2020/02/26/… 简而言之编译到 WebAssembly 的过程中唯一的部分是 Mono 运行时
      • 所以您确认我的应用程序的 dll 文件将被下载?除了缓存文件,blazor 还在控制台中通知浏览器下载了哪些文件(和大小)。我说的对吗?
      猜你喜欢
      • 2022-11-09
      • 2021-09-22
      • 2021-12-19
      • 2022-01-13
      • 1970-01-01
      • 2021-02-25
      • 1970-01-01
      • 1970-01-01
      • 2020-12-05
      相关资源
      最近更新 更多