【问题标题】:What is causing the creation of a transient script document?是什么导致了临时脚本文档的创建?
【发布时间】:2012-05-10 23:41:51
【问题描述】:

我正在使用一个使用基于 javascript 的客户端和服务器端代码的应用程序。 我可以使用“调试器”语句成功调试客户端代码。代码在 Visual Studio 2005 中查看。 但是,当我使用“调试器”语句调试服务器端代码时,会发生以下事件:

  1. VS 打开,标题栏中显示“inetinfo (Running)”,但没有显示代码
  2. 在我的文本编辑器 (Notepad++) - C:\Windows\System32\^TransientScriptDocument0.txt 中创建了一个空白文本文档
  3. 返回到 VS,我得到一个标题为“查找源:JScript - 脚本块”或“评估代码”的查找文件对话框。它在 inetsrv 文件夹中查找“JScript - 脚本块”或“eval 代码”的文件名。
  4. 我取消此对话框,因为该文件不存在。
  5. 我得到另一个 VS 对话框,指出“当前位置没有可用的源代码”
  6. 我在此对话框中单击“确定”,我可以看到没有代码显示的 VS 主窗口。我的本地窗口显示断点处可用的局部变量,我可以查看“调用堆栈”中的函数,尽管如果我尝试单击它们进行调试,我再次得到对话框“当前没有可用的源代码位置”。

谁能解释一下: 1. 发生了什么 2. 我需要更改的内容才能以与客户端源代码相同的方式查看和调试服务器端源代码 非常感谢

【问题讨论】:

    标签: javascript server-side serverside-javascript


    【解决方案1】:

    在不了解应用程序的情况下很难说,但一般来说,针对已编译代码的调试器(我认为在您的情况下可能适用于服务器端代码)不会直接跟踪源代码,而是跟踪调试信息包含在目标代码中(这是调试代码和发布代码之间的区别 - 发布代码没有这些无关信息)。

    然后,此调试器链接回源代码文件的副本,以向您显示当前正在执行的行并让您查看变量的内容。但这是'烟雾和镜子',它实际上并没有直接运行你看到的代码。

    因此,在您的情况下,可能发生的是,在您的环境中,调试器实际上并不知道源在哪里,或者无法打开它(即权限)。因此,您的下一步是检查您的开发环境并确保所有内容都指向正确的位置并且已授予所有必要的读取权限。

    【讨论】:

    • 源代码未编译。自从我提出问题以来,我找到了解决该问题的方法。我所有的代码都在虚拟机上,所以我部署了我们团队在已知工作环境中拥有的虚拟机模板。现在,当我调试服务器端代码时,VS “发现”了任何问题。服务器端代码加载在一个名为“eval code”的窗口中,并且像客户端代码一样完全可见。如果有人对我以前的虚拟机出现故障的原因有更明确的答案,我仍然很想知道。
    猜你喜欢
    • 2016-02-27
    • 1970-01-01
    • 1970-01-01
    • 2015-04-13
    • 2014-04-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多