我正在测试ClickOnce应用程序部署。我在我的机器上设置了一个虚拟目录(运行IIS)。我在Visual Studio的“发布”选项卡中指定了http://localhost/SampleApplication作为安装文件夹URL。但是,当我发布应用程序时,我收到以下错误:
警告:无法下载文件 来自http://chrish/SampleApplication/。
远程服务器返回错误: (407)需要代理验证。 发布成功。
警告:无法 查看已发布的申请表 http://chrish/SampleApplication/publish.htm。 http://chrish/SampleApplication/publish.htm
注意它是如何将我的URL从Localhost更改为我的登录名。为什么?一周前没有发生这种情况。
答案 0 :(得分:5)
ClickOnce安装涉及验证服务器名称是否与预期名称匹配。因此,localhost总是被翻译成计算机名称[不是您在问题中建议的用户名](ClickOnce所做的许多令人困惑的事情之一 - 这样做的一个副作用是,如果你想设置3个下载服务器,你需要做3个单独的发布和/或script the publish like this)或like this。所以这并不奇怪 - 它总是在幕后做这件事。
407错误与代理身份验证有关。这意味着下载正通过Microsoft ISA Server等代理转移。查看IE Internet选项连接代理设置,确保绕过本地地址[例如chrish
]。
报告成功的原因是上传可能使用的替代机制不是验证,并且没有被代理路由/阻止。 (潜在的问题是,.NET框架默认情况下不会传递代理凭据,您需要either apply a config entry for devenv或者发布或让构建过程调用测试步骤,并使用额外的代码发送代理凭证](http://blogs.msdn.com/jpsanders/archive/2009/03/24/httpwebrequest-webexcepton-the-remote-server-returned-an-error-407-proxy-authentication-required.aspx)。另见How should I set the default proxy to use default credentials?)
答案 1 :(得分:0)
ClickOnce不喜欢" localhost",但你可以解决这个问题。
如果将“发布文件夹位置”设置为:
C:\的Inetpub \ wwwroot的\ SampleApplication \
和安装文件夹URL:
http://chrish/SampleApplication/
(其中" chrish"是您计算机的网络名称),然后您可以在本地发布。