【问题标题】:Published Azure Code已发布 Azure 代码
【发布时间】:2017-05-26 20:03:59
【问题描述】:

是否可以从 Azure 云服务中检索已发布的代码。

当我更改 TFS 映射时,TFS 清除了我在本地计算机上编写的代码。它将 .csproj 和 .ccprof 文件转换为 csproj.user 和 .ccproj.user 文件。它还删除了解决方案。自 2 月以来我还没有签过任何东西,所以签出会丢失 3 个月的代码。我可以访问一些视图、脚本和 .css 文件,但所有 .cs 文件都消失了。我尝试了以下方法。

  1. 远程桌面进入已发布站点。 - 有效,但所有 .cs 文件都存储为 .dll 并且代码丢失并且 反编译时“混淆”。
  2. Wondershare 数据恢复。
    • 找到了一些文件,但通常格式不可读。很多人还在 不见了。
  3. 在 Azure 存储的 vsdeploy 文件夹中获取 blob。
    • 我有斑点。怎么办?有没有办法将其转换回可读项目?
  4. 使用“从 Azure 网站打开”扩展将项目加载到可视化 通过 Azure 门户中的 publishsettings 文件创建工作室。
    • 这适用于应用服务,但我找不到任何存在 Azure 中的 .PublishSettings 文件。 Get-AzurePublishSettingsFile 调用来自 Windows Powershell 不会下载正确的文件。使用时 扩展我得到一个“对象未设置为对象的实例”异常。一世 已经使用应用服务测试了扩展,它运行良好。

【问题讨论】:

  • 否,代码已编译并将输出发送到 azure。它可能仍在 TFS 中,但默认隐藏。请参阅blogs.microsoft.co.il/eranruso/2011/01/24/…(2017 年仍然适用 :-))
  • 问题是我寻找的代码从未在 TFS 中。我从来没有检查过。我只是发布了它。重新映射目录从我的本地计算机中删除了代码,因此唯一的来源是发布到 Azure 的代码。
  • 在这个page上尝试解决方案2

标签: asp.net-mvc visual-studio azure


【解决方案1】:

如果您谈论的是云服务中的网络/工作者角色,那么不,您无法检索已部署的代码。要将代码获取到云服务,首先由 Visual Studio 打包(或直接通过命令行工具,或通过 Eclipse)。这需要首先编译所有代码。源文件不包含在包中(除非您在包中明确执行了诸如将“本地复制”设置为 true 之类的操作,我无法想象有人会这样做)。

就 blob 存储中的内容而言:如果您的 .cspkg 仍然位于 blob 中,当然,您可以下载并检查它。但同样,它只包含在本地构建并在部署期间上传的相同包。

使用 Web 应用程序,您的代码在您的 d:\ 驱动器中可用,因为部署是通过版本控制完成的(除非您只是 ftp 一些东西)。

使用虚拟机(在“经典”部署模型中位于云服务中),您需要自己将代码推送到虚拟机(没有内置的版本控制推送)。同样,除非您将源代码推送到 VM,否则无法检索所述源代码。

至于在您的本地机器上被清除的代码,可能值得研究恢复/取证磁盘工具(看起来您已经开始这样做了),看看您的代码是否仍然存在于某个地方,隐藏。但是,实际上,您如何寻找已删除/覆盖的文件将是题外话(或在 SuperUser 上询问的问题)。

【讨论】:

  • 感谢您的详细解释并确认我的怀疑。谁能推荐一个工具来将 Azure 中 vsdeploy 文件夹中的 blob 转换为可读代码?
  • 也许我太不清楚了 - 抱歉 - 除了通用的 .net 反汇编程序之外,没有工具可以转换为可读代码(您需要自己弄清楚)。 Blob 实际上只是一个包含 DLL、配置等的 zip 文件。
猜你喜欢
  • 2022-08-09
  • 2022-01-12
  • 2021-05-25
  • 1970-01-01
  • 1970-01-01
  • 2021-01-02
  • 2011-06-14
  • 2022-07-05
  • 1970-01-01
相关资源
最近更新 更多