无法从Visual Studio 2010发布网站

29
我们有一个ASP.NET MVC网站解决方案,团队中只有三分之一的开发人员能够发布到生产服务器。当我和另一个同事尝试从VS 2010发布网站时,输出窗口会显示一个错误信息:
无法创建Web站点'\blah'。路径'\blah'不存在或者您没有访问权限。指定的路径无效。
这指向了一个登录问题,但我的账户以及那个能够发布网站的开发人员账户属于相同的用户组。我们尝试过将“Everyone”设置为该文件夹的完全访问权限,但这并没有解决问题。
请问是否有更详细的方法可以尝试,以找出我们无法发布网站的原因?一定有某个权限集可以让我的同事从Visual Studio中发布网站。
7个回答

67

我曾经遇到过这个问题,为了不必手动将发布文件复制到远程服务器上,我费尽心思试图解决它。我花了很多时间积极尝试让它工作。

以下是我的解决方案:我在Visual Studio 2010 Express中转到文件>打开,并导航到远程服务器(\\255.255.255.255\folder1\folder2\folder3等)。我立即被要求输入用户名和密码。我输入了远程服务器的凭据,勾选了'记住我的凭据'。我立即尝试发布,妙啊-它像魔法一样工作了。

希望这能为很多人节省很多时间。


24
我遇到了这个问题——我们团队的某些成员能够直接从VS2010发布,而出于某些原因,我总是会收到权限被拒绝的错误,即使我们都能够连接到我们要部署的服务器。我以以下方式解决了这个问题:

进入“服务器资源管理器”。

右键单击“服务器”,然后选择“添加服务器...”。

输入您要连接的服务器的名称,然后单击“使用不同的用户名连接...”——在此处输入用于登录服务器的凭据。

点击“确定”并等待它添加服务器。

现在尝试发布到那个服务器,应该可以正常进行...

不确定为什么我需要这样做,而其他人可以在不通过此方式添加服务器的情况下部署... 仍未得到解释。

根据下面的评论:

  • 您可能需要重新启动Visual Studio才能使其生效。
  • 这也适用于较新版本的Visual Studio。

1
这似乎是最好的、最官方的解决方案,并且对我有效。谢谢! - Vimes
1
如果您在安装了VS 2013(2013.4)的更新4之后,使用非默认凭据将网站发布到文件系统时遇到问题,这也适用。 - Slawek
1
我知道你的回答是几年前的,但它今天真的帮了我很多,谢谢! - Ben L.
1
我已经花费了数小时,我的朋友。我知道这个网站不喜欢“谢谢”,但还是要感谢你。 - greg
1
在 Visual Studio 2015 中遇到了相同的问题。这解决了它。 - Shaun Roach
显示剩余2条评论

13
今天我遇到了同样的问题。在我的情况下,我必须关闭VS2010并以非管理员身份重新打开它,这样就可以无问题地工作了。

啊,好的。谢谢你的建议。如果我再次遇到这种情况,我会尝试你所建议的方法。我已经很久没有从VS2010发布过了,但是你永远不知道什么时候会再次出现这种情况。 - Jason Evans
@JasonEvans 这个解决方案一直可以使用到VS2015。我就是用这个答案在2015年解决了完全相同的问题。 - Joe
这个解决方案对我也起作用了,因为在Windows 10中,当我没有以管理员身份运行VS时,遇到了一些问题,所以我不得不对其进行了一些修改。虽然我不经常发布,但我会保持现状,但每次发布时重新发现这个问题可能会很烦人(取决于我那天的记忆力有多好...)。 - docmanhattan
如果我能多次点赞,那就太好了。我从来没有想到这会是问题所在。一个提升的实例怎么可能没有访问我帐户有权限访问的文件夹呢? - Bas
在VS2022中工作过。这是我第一次遇到这个问题。 - cherry

2

这个问题困扰了我很长时间...请前往项目-属性并选择“包/发布Web”选项卡。在“Web部署包设置”标题下,有一个省略号按钮,您可以使用它来映射到您想要发布的位置。在该过程中,您将被要求提供您的凭据。


我在 VS2022 中找不到这个对话框了。 - greg
我在VS2022中再也找不到这个对话框了。 - greg

1
你是否使用Web Deploy(右键单击并选择发布)?
你是否尝试将ProjectName.Publish.xml文件从可以发布的一台机器复制到另外两台机器?发布的登录凭据保存在此文件中。

是的,我们正在使用右键菜单中的“发布”选项。我会查看你提到的XML文件。 - Jason Evans

0
在IIS中,您可以检查所有用户/组是否在IIS管理器中的管理服务委派下列出?它在IIS中的服务器节点下列出。或者,您可以通过单击侧边菜单中的“编辑功能”并选中“允许管理员绕过规则”来为所有管理员提供访问权限。
您还可以检查个别站点的IIS管理器权限,以查看能否发布的人是否在其中列出,而您不在其中。
我最近刚刚在我的服务器上设置了MSDeploy访问,并发现以下两个教程很有帮助:

http://william.jerla.me/post/2010/03/20/Configuring-MSDeploy-in-IIS-7.aspx

http://code-inside.de/blog-in/2011/04/03/howto-setup-of-webdeploy-msdeploy/


0

我也发现将驱动器映射到UNC位置可以解决问题。

@soupy1976的解决方案对我也有效。 我无法解释为什么有时它能工作,有时它不能。

令人沮丧....


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接