Visual Studio 2010无法发布到本地网站。访问被拒绝。

17

我经历了很多麻烦,最终重新安装了IIS7.5。坦率地说,我当时不太清楚自己在做什么。

我最终成功将我的windows\system32\inetsrv文件夹重命名,这样在我重新安装IIS时可以得到默认设置。

我猜测运行以下命令后,我的站点就能运行:aspnet_regiis.exe -i

现在,我无法从Visual Studio发布任何站点到wwwroot下面。

例如,我收到以下错误信息:Unable to create the Web site location 'c:\inetpub\wwwroot\WebApplication5'. Access is denied.

我的解决方法是在其他地方发布,然后将代码复制到该位置-这样可以正常工作。

天知道我在这个过程中弄坏了什么,但是我的网站似乎可以工作,除了由于访问被拒绝的错误导致我无法使用VS2010的发布功能。

我需要授予某些ASPNET内置用户对此文件夹的权限吗?

以下是我的wwwroot文件夹的权限截图:

enter image description here

6个回答

29
如果您可以在从不同位置复制后运行应用程序,则问题不在于IIS或工作进程;最有可能是您的Windows用户和进程(在本例中是Visual Studio)的权限问题。
尝试以管理员身份运行Visual Studio(如果您不是机器的本地管理员)。 如果可以,请为您的用户授予inetpub文件夹的完全访问权限。

2
以管理员身份运行VS可以正常工作。然后我授予了我的账户对该文件夹的完全控制权并正常运行VS,这也起作用了。让我困惑的是,我的账户绝对在管理员组中。如果您需要,我可以提供屏幕截图作为证明。有什么想法吗? - Chad
在本地使用VS发布时,我也遇到了同样的问题。 - Dave

7
我晚了点,但是我通过以下方法解决了这个问题:
在 c:\inetpub\wwwroot\myApplication 目录下右键 > 属性 > 安全 > 选择 Users(myMachine\Users) 并将访问权限更改为 完全控制

我也注意到有时候这个错误会间歇性地发生,可能是某些资源访问竞争的原因。 - Sonic Soul

3
希望这个帖子还活着。我曾经遇到过这个问题,以下是我的解决方法:
尝试通过 Visual Studio 的“文件>打开文件...”来打开远程站点上的文件。
如果您没有访问权限,将会要求您进行Windows登录验证。在此处,您可以输入访问远程站点所需的凭据。一旦输入了凭据并成功打开了文件,您就能够发布了。偶尔(我不知道为什么),凭据会失效,此时您只需要打开一个文件并重新输入它们即可。

1
另一种解决方案是创建一个共享到本地的 c:\inetpub\wwwroot 目录(授予自己读写权限),然后像这样发布到共享:\\mypc\wwwroot\mywebsite。这帮助我避开了烦人的UAC安全性,而无需禁用它。

这是我首选的解决方案,因为它允许我在将应用程序发布到本地iis目录时,遵循与发布到远程服务器相同的过程。能够保留UAC安全性而无需禁用是一个额外的好处,因为这是需要修改/记录的少数事情之一。 - nbstrat

0

我遇到了类似的问题

访问路径 'C:\Sources\x\bin\Debug\netcoreapp2.1\publish' 被拒绝。 无法创建网站位置,拒绝访问。

因为文件资源管理器中打开了子文件夹并被锁定,所以拒绝访问。


0

Web Deploy 可能会在用户名称Local Service下执行。请检查此用户的权限。


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