1

我无法使用 IIS7 为 ASP 网络运行 Visual Studio 2012 调试。

我已经尝试过以下

IIS 中的 ASP NET 设置

.NET 编译:将默认语言更改为 c#

IIS 设置

ASP:

  • 将脚本语言更改为 c#(手动)
  • 启用客户端调试:true
  • 启用服务器端调试:true

脚本 - 语言:c#

我也在使用 Asp Net v4.0 应用程序池

我可以更改任何其他设置以使其正常工作吗?

编辑:

我的用户是 Debugger 用户的一部分

错误如下:

无法在 Web 服务器上开始调试。Web 服务器配置不正确。有关常见配置错误,请参阅帮助。

编辑2:

这是日志

Software: Microsoft Internet Information Services 7.5
Version: 1.0
Date: 2012-12-18 11:29:55
Fields: date time s-ip cs-method cs-uri-stem cs-uri-query s-port cs-username c-ip cs(User-Agent) sc-status sc-substatus sc-win32-status time-taken
2012-12-18 11:29:55 ::1 DEBUG /tgpwebged/debugattach.aspx - 443 - ::1 - 403 7 5 43

编辑 3:

我已经在 web.config 中手动配置了编译元素。这是实际的配置:

<compilation batch="true" debug="true" defaultLanguage="C#" explicit="false" 
maxBatchGeneratedFileSize="10000" maxBatchSize="10000" 
numRecompilesBeforeAppRestart="100" strict="false" 
tempDirectory="C:\Windows\Temp" urlLinePragmas="false"> </compilation>

也只是为了测试目的,将运行在我帐户下的用户 ASP NET V4 应用程序池更改为我的帐户。不是 SYSTEM.. 我的个人帐户。还没有成功。

4

6 回答 6

1

我以前遇到过这个问题(虽然没有 VS2012)并且以下事情已经奏效:

  • 确保为集成 Windows 身份验证配置 IIS。
  • 确保启用了 HTTP Keep Alives。
  • 确保http://localhost在您的 Web 浏览器中的受信任站点中。
于 2012-12-18T11:33:33.070 回答
0

我刚遇到同样的情况。我已经解决了,我是这样做的:

  • 检查它是否是 IIS 上的正确 .NET Framework 版本。
  • 检查您的应用程序池的管道模式,对于某些应用程序 - 它只允许Classic mode.
  • 检查您要调试的应用程序下是否有任何其他应用程序。
于 2013-09-26T08:25:21.240 回答
0

Can you attach your debugger to the w3wp process and debug that way ?

Here is an article: Attatch debugger to an IIS process

于 2012-12-18T11:25:44.950 回答
0

通常,您必须以本地管理员身份运行 Visual Studio 才能进行调试。

于 2013-02-18T14:54:40.167 回答
0

我在 VS2010 上遇到了类似的问题,站点托管在 IIS7.5 上。我正在尝试按 F5 并让我的网站启动一个自动附加调试器。

我认为关键是您日志中的这一行:

2012-12-18 11:29:55 ::1 DEBUG /tgpwebged/debugattach.aspx - 443 - ::1 - 403 7 5 43

据我所知,debugattach.aspx 是 VS 在实际启动和运行您的应用程序之前会尝试调用的某种钩子。互联网上关于这个东西实际上是什么的细节有点粗略,但似乎如果你没有得到 200(成功)VS 将无法自动附加。基本上它在步骤 1 中失败了。在您的日志中,您的请求有 403(授权错误),我的日志中有 404(未找到)。

在您的特定情况下,您的 IIS 配置中可能有一些东西阻止了 DEBUG 动词。阻止不常见的动词或除 POST 和 GET 之外的任何内容是一种常见的安全做法。就我而言,它可能是相似的——aspx 扩展名可能被过滤掉了。它也可能是相关应用程序的默认身份验证设置。

更新:我确实解决了这个问题,两个不同的事情是错误的。首先,我使用 UrlScan.dll 来保证安全,它阻止了 DEBUG 动词。此外,我使用 UrlRewrite 规则从 HTTP 转到 HTTPS,它生成的 302 重定向也阻止了这个 VS 请求。我能够使用 IIS Failed Request Tracing 功能找到这两个问题。该工具的日志可以深入了解管道中的各种模块和处理程序正在做什么。

希望这会有所帮助!

于 2013-09-05T15:37:19.740 回答
0

尝试在命令行中运行以下命令:

cd %windir%\Microsoft.NET\Framework\v4.0.30319
aspnet_regiis.exe -i
于 2012-12-18T11:27:53.970 回答