1

我有一个基于 localhost 端口的网页(使用 ASP.NET 开发服务器 - MSVS2k8 的 Web 服务WebDev.WebServer.exe)在通过浏览器(Chrome 35 或 IE 11)访问时可以正常工作,但是当我通过WebClient(通过 DotLisp 或 LinqPad)或 MSTest。

这是在 Win8.1 64 位机器上,仍然使用 Visual Studio 2008。

我已经重新启动,但问题仍然存在,即使这在今天早些时候工作。我还以管理员身份运行了 Visual Studio,而不是。

细节:

异常:System.Net.WebException 消息:远程服务器返回错误:(401)未经授权。目标:Byte[] DownloadDataInternal(System.Uri, System.Net.WebRequest ByRef) 源:System

简化调用代码:

 (def (get-web-page url)
  (with-dispose
   (wc (WebClient.)
    b (wc.DownloadData url)
    m (MemoryStream. b false)
    s (StreamReader. m))
   s.Peek
   s.ReadToEnd))

LinqPad:

Using wc = New WebClient
  Dim twp = wc.DownloadString("http://localhost:20147/")'TestServers.aspx")
  twp.Dump
End Using

(在使用运行测试而不是调试测试时,我也遇到了一个问题,尝试更新代码覆盖率的程序集或与之相关的东西以“有趣”的方式失败。但我相信这与上述问题无关,除了尝试解决此问题可能会以某种方式导致我更改导致上述问题的设置。)

4

1 回答 1

2

我不知道设置是如何更改的,和/或为什么它更早地工作,但关闭NTLM 身份验证可以解决问题。

具体来说,右键单击解决方案资源管理器 > 属性页 > 启动选项中的 Web 项目并取消选中 NTLM 身份验证,然后单击确定。

于 2014-07-04T13:12:46.983 回答