Web服务器无法找到请求的资源

时间:2008-11-13 19:06:52

标签: visual-studio-2008 debugging iis-7 windows-vista

我在Vista Ultimate 32 SP1上运行的VS 2008 SP1上有一个.NET 3.5 Web应用程序。我在默认网站下创建了一个应用程序。所以该应用的网址是“http://localhost/mysite”。应用程序文件夹指向解决方案文件夹,它位于iisroot文件夹之外。 IIS7中为此Web应用程序“mysite”启用了匿名和集成身份验证(Windows)。

我将“网络服务”用户的完全权限授予了应用程序文件夹(位于iisroot之外)。

当我按F5进行星型调试时,我得到“无法在Web服务器上开始调试.Web服务器无法找到所请求的资源。”错误。


我启动了TcpView(Sysinternals)来查看实际运行的应用程序并保留该端口的句柄,我发现没有应用程序在该端口上侦听。这真的很奇怪......有什么创意吗?


我可以毫无问题地点击网址“http://localhost/mysite”。该Web应用程序设置为启动项目,Default.aspx是启动页面。

项目中也有.asmx服务。 Default.aspx正在使用该asmx服务。 AutoCompleteExtender(来自AJAX Control Toolkit)正在使用此asmx服务。

一切顺便。问题是调试...我怀疑asmx服务导致了这个但我不知道。这让我疯了......

23 个答案:

答案 0 :(得分:36)

对于那些使用 Visual-Studio 2012或2013 和/或 Windows 8或10 进行此操作的人,请执行以下操作。

您必须将.Net 3.5(或4.5)添加到打开或关闭Windows功能窗口。你可以通过以下方式获得:

  

控制面板 - >程序 - >打开或关闭Windows功能

enter image description here

点击Asp.Net 3.5文件夹中的Asp.Net 4.5IIS > WWW Service > Application Development Features复选框。

答案 1 :(得分:16)

打开IIS7(运行> inetmgr)并转到功能视图。打开ISAPI和CGI限制部分,检查.Net版本是否有正确的限制(例如,如果您使用的是4.0,则应该是“允许”)

答案 2 :(得分:8)

另一个常见问题是网站或应用程序路径未启动。

答案 3 :(得分:7)

我有同样的问题并解决了它。您可以尝试以下操作:导航到Web应用程序的根文件夹,找到具有“.csproj.user”扩展名的文件并将其删除。关闭所有Visual Studio实例,然后重新开始。 然后点击F5。 否则按CTRL + ALT + P并附加到w3wc.exe进程。 希望它有所帮助。

答案 4 :(得分:6)

刚设法在我的开发机器上修复此问题:我已经安装了UrlScan并且必须将DEBUG添加到AllowVerbs列表中。希望这可能会给你一些其他的东西继续吗?

答案 5 :(得分:2)

对我来说,IIS中的默认网站已停止,启动后,我设法让它正常工作

答案 6 :(得分:2)

安装Urlscan并使用这些更改更改urlscan.ini解决了这个问题。

在ALLOWEXTENSIONS部分添加.aspx并在ALLOWVERBS部分添加DEBUG。

不要忘记重新启动IIS。

答案 7 :(得分:2)

我遇到了与XP sp3相同的问题,而且我已经挣扎了几天。将.aspx和DEBUB添加到urlscan.ini解决了这个问题。

谢谢你们。

答案 8 :(得分:2)

就我而言,我必须修复Web服务扩展

管理工具 - >管理我的服务器 - > IIS - > Web服务扩展

ASP.NET 2.0在某种程度上被禁止,修复了它并开始工作。

干杯!

答案 9 :(得分:2)

在我的情况下,我不得不为IIS重新注册ASP.NET。 您可以通过从命令提示符

运行以下命令来执行此操作
systemroot\Microsoft.NET\Framework\ versionNumber \aspnet_regiis -i

例如: C:\Windows\Microsoft.NET\Framework\v4.0.30319\aspnet_regiis -i

答案 10 :(得分:1)

我正在使用Windows 7 32位VS2005和IIS 7.5。默认情况下,我的web.config有debug =“true”。我设置IIS物理路径指向开发文件夹,并按照上面的提示。我没有使用UrlScan。我作为管理员运行VS2005。我仍然无法让它发挥作用。

它的工作原理是添加IIS_IUSRS帐户,可以完全访问开发网站根文件夹,并使用CTRL + ALT + P(附加到进程)附加到w3wp.exe。

答案 11 :(得分:1)

对我来说,有人更新了web.config for Request Filtering,特别是他们只允许GET和POST动词。要使用本地IIS,您还需要允许DEBUG动词。

<verbs allowUnlisted="false">
     <add verb="GET" allowed="true" />
     <add verb="POST" allowed="true" />
     <add verb="DEBUG" allowed="true"/>
</verbs>

答案 12 :(得分:1)

我也在IIS上使用默认网站,但无法通过debuging或简单浏览来启动它。

原来,默认网站已停止!!开始了,一切都很好。

答案 13 :(得分:1)

我刚遇到同样的问题而且没有任何建议有效。

我的问题是我的项目网址设置为http://localhost/service。将此更改为我的IP地址。

答案 14 :(得分:1)

这个问题的解决方案非常简单。如果网站指向其他位置,并且虚拟目录指向不同的目录,则会收到此错误。

我建议您将网站指向与虚拟目录相同的目录,问题就足够了。

答案 15 :(得分:1)

这应该不是问题 - 你有什么作为你的启动页面?此外,在网络的“开始选项”中(在属性页面下),请确保选中“起始网址”并将其放入上面提到的网址中。

您所遇到的错误不应该是特定于权限的,所以我会查看其他地方 - 还要检查您是否可以在调试之前成功点击网址(手动将网址放入浏览器中)“http://localhost/mysite”。

答案 16 :(得分:0)

转到Web项目的属性,然后转到“Web”选项卡,然后确保您使用的是Visual Studio开发服务器而不是本地IIS或自定义Web服务器。我在VS2010上使用Win7,另一个开发人员正在使用自定义Web服务器URL而不是VS Dev Server进行开发

答案 17 :(得分:0)

确保项目属性的Web选项卡中的Project Url不包含无效字符。在我的情况下,它有一个“+”字符,导致出现此错误。

答案 18 :(得分:0)

我的web.config中的这一部分导致错误:

<security>
    <requestFiltering>
        <hiddenSegments>
            <add segment="......" />
            <add segment="....." />
            ........
        </hiddenSegments>
    </requestFiltering>
</security>

小心地重复一遍 - 也许您的调试文件仅限于浏览器中的直接浏览。

答案 19 :(得分:0)

我遇到了同样的问题,但是如果我通过工具进行调试 - >附加到Process菜单,然后选择aspnet_wp进程。

答案 20 :(得分:0)

为了确保您在web.config中设置Debug = true。通常,当您使用VS的内置Web服务器时,它能够检测到您正在尝试调试,但调试标志已关闭并且它会警告您。但在您的情况下,您已设置IIS,VS可能无法执行此检查。

另一点是你在Vista上运行。即使您是系统管理员,在Vista中,Vista也不会将您视为管理员。您的安全令牌是从普通用户创建的。为了调试IIS托管网站(注意:使用内置Web服务器时,VS 2008管理调试),以管理员身份运行VS 2008。这可以解决这个问题。

答案 21 :(得分:0)

我尝试了一切都无济于事,但是一旦我把csproj.user从那里拿出来,低,看哪,网站加载了。不要担心删除它,一旦网站加载,它将创建一个新的。

答案 22 :(得分:0)

你试过了吗?

  • 转UAT
  • 将网站运行的用户(和/或您自己)添加到调试器或管理员组(暂时)
  • 启用IIS日志记录