缓存获取的符号文件
通常,SymProxy 会将其获取的文件缓存在 Internet 信息服务 (IIS) 中指定为相关网站虚拟根的目录中。 然后,IIS 使该文件可用于客户端调试器。 由于调试器无法直接从 HTTP 打开文件,因此它将文件复制到由符号路径指定的本地缓存:
srv*c:\localcache*https://server/symbols
在本例中,客户端调试器将文件复制到 c:\localcache。 在这种情况下,文件会复制两次:一次由 SymProxy 复制到网站的虚拟根目录,另一次由调试器复制到其本地缓存。
可以避免第二次复制操作并加快处理速度。 要执行此操作,必须首先将网站的虚拟根目录共享为调试器可以访问的 UNC 路径。 例如,此路径名为 \\server\symbols。 然后,必须删除 MIME 类型的 IIS 配置:
删除 MIME 类型的 IIS 配置
从管理工具中打开 Internet Information Services (IIS) 管理器。
展开网站。
右键单击默认网站。
右键单击符号虚拟目录,然后选择属性。
单击 HTTP 标头选项卡。
单击 MIME 类型。
选择标记为已注册 MIME 类型的列表框中的所有类型。
单击“移除”。
要退出 MIME 类型对话框,请单击确定。
若要退出符号属性,请单击确定。
这导致 IIS 将找不到的文件返回到网站上所有事务的调试客户端。 但是,这并不阻止 SymProxy 使用该文件填充虚拟根。
删除 MIME 类型的 IIS 配置后,使用以下命令将调试器客户端配置为首先在 HTTP 存储和映射到存储的虚拟根的共享中查找符号:
srv**https://server/symbols;srv*\\server\symbols
在前面的示例中,符号路径的第一个元素(srv**https://server/symbols) 表示要从 HTTP 存储中获取文件,并将其作为本地缓存复制到默认符号存储区。 指定的缓存并不重要,因为从未从 HTTP 存储收到任何文件。 失败后,它会尝试从存储的虚拟根的实际位置 (srv*\\server\symbols) 获取文件。 此尝试成功,因为文件被复制到该位置,这是前一个路径处理的副作用。