Debugging Tools for Windows

HTTP符号存储

要让符号存储可以通过Internet进行访问,需要同时配置包含符号文件的目录和Internet Information Service(IIS)。

配置目录

首先要选择用来作为符号存储的目录。在我们的例子中,使用c:\symstore,并且网络上服务器的名字称为\SymMachineName。必须设置权限以允许用户访问这个站点,并且必须为需要通过网络访问符号的用户添加用户组(security group)。各种环境下需要使用的安全设置不一样。某些情况下,可以使用“Everyone”。

设置目录的权限
  1. 1.打开Windows Explorer。
  2. 2.展开我的电脑
  3. 3.展开C驱动器。
  4. 4.右键点击c:\symstore并选择共享和安全(Sharing and Security)
  5. 5.选中共享该文件夹(Share this folder)
  6. 6.点击权限(Permissions)
  7. 7.将需要访问的用户组添加到组或用户名称(Group or user names)中然后点击读取(Read)行的允许(Allow)按钮。使得他们具有可读权限。
  8. 8.点击确定(OK)退出权限设置。
  9. 9.点击确定(OK)退出Symstore属性设置。

这样,在另一台计算机上就可以使用srv*\\SymMachineName\symstore符号路径来访问了。还可以通过更多设置来进行权限认证或者供SymProxy使用。

关于创建符号存储的更多细节,查看SymStore

配置IIS

Internet Information Services (IIS)必须创建虚拟目录并设置MIME类型才能用于符号访问。除此之外,还可以选择用户认证方式。

创建虚拟目录

  1. 1.在管理员工具(Administrative Tools)中打开Internet Information Services (IIS) Manager。
  2. 2.展开Web Sites
  3. 3.右键点击Default Web Site或者要使用的站点名字。
  4. 4.选择New Virtual Director...
  5. 5.点击Welcome页面的Next
  6. 6.输入Symbols作为Alias并点击Next
  7. 7.在Path中输入c:\SymStore并点击Next
  8. 8.去掉Run scripts的选中状态 (建议)。
  9. 9.选中Browse (建议)。
  10. 10. 点击Next并且Finish退出虚拟目录向导。

配置MIME类型
  1. 1.右键点击Symbols虚拟目录并选择属性(Properties)
  2. 2.选择HTTP Headers
  3. 3.点击MIME Types
  4. 4.点击New
  5. 5.在Extension中输入*。
  6. 6.在MIME type中,输入application/octet-stream
  7. 7.点击确定(OK)退出MIME Types对话框。
  8. 8.点击确定(OK)退出Symbols Properties对话框

这时,IIS已经可以允许匿名用户访问符号文件了。还可以将IIS配置来使用Integrated Windows Authentication (IWA),这样WinDbg可以自动和IIS进行认证而不用提示终端用户。但是,SymSrv目前在连接到IIS时不支持Kerberos认证,所以Kerberos必须从选项中移除。

配置认证方式
  1. 1.在管理员工具(Administrative Tools)中,打开Internet Information Services (IIS) Manager
  2. 2.右键点击Symbols虚拟目录并选择属性(Properties)。
  3. 3.点击Directory Security选项卡。
  4. 4.在Authentication and access control上点击Edit
  5. 5.确认只有Integrated Windows Authentication被选中了。
  6. 6.确认Enable anonymous acceess没有被选中。
  7. 7.点击确定(OK)退出Authentication Methods对话框。
  8. 8.点击确定(OK)退出Symbols Properties

要移除Kerberos认证,需要站点标识符。如果没有使用默认的站点(即站点"1"),那么必须通过选中Web Sites文件夹并且在右边的面板列出来的标识符中查找到需要的那个。将这些地方的"1"替换成正确的标识符数字。

移除Kerberos认证来强制使用NTLM认证
  1. 1.打开命令提示符窗口
  2. 2.切换到目录c:\inetpub\AdminScripts
  3. 3.输入下面的内容,包括引号:

    cscript adsutil.vbs set W3SVC/1/root/Symbols/NtAuthenticationProviders "NTLM"

IIS现在可以用来进行符号访问了。

Build machine: CAPEBUILD