1

在 Windows 2003 服务器上,我安装了多个版本的 Visual Studio,还有 Visual Studio 2003。在服务器上,我想开发两个不同的 Web 应用程序。一个 Web 应用程序正在运行,但我在另一个应用程序上遇到了问题。

当我尝试打开应用程序(重建后)时,我收到错误消息:“Web 服务器在尝试创建或打开位于以下 URL 的 Web 项目时报告了以下错误:' http://localhost/MyApp ' 。 '操作超时'。” 我已经看到当我删除构建生成的dll文件时问题消失了。由于环境将分发给多个用户,因此每次启动 Visual Studio 时都不能删除 dll。

我已经多次尝试使用 aspnet_regiis -u、aspnet_regiis -i 和 aspnet_regiis -r 重新注册 asp.net。

当我执行 aspnet_regiis -lv 我得到以下信息: 1.1.4322.0 Valid (Root) C:\WINDOWS\Microsoft.NET\Framework\v1.1.4322\aspnet_isapi.dll 2.0.50727.0 Valid C:\WINDOWS\Microsoft.NET\Framework \v2.0.50727\aspnet_isapi.dll

有谁知道这个问题的解决方案?

4

3 回答 3

1

遵循上述建议的步骤后,这对我来说仍然是一个问题。这是最终对我们有用的解决方案。

  1. 在本地计算机上打开 IIS 日志记录。请务必记录查询字符串和 HTTP 响应代码。
  2. 尝试打开您的解决方案并让它超时。
  3. 执行 iisreset 以刷新 IIS 日志。
  4. 打开 IIS 日志。您会注意到,当您打开解决方案时,您会产生相当多的活动。
  5. 无论出于何种原因,VS2003 都会尝试导航到您的某些页面……特别是,如果您打开了表单身份验证,它可能会导航到您的登录页面。
  6. 检查登录页面日志条目中的处理时间和 HTTP 响应代码。在我们的例子中,它返回一个 302 HTTP 重定向。

在我们的代码中,登录页面通过检查 cookie 启动,如果找不到则重定向到外部页面。此重定向是到开发环境中无法访问的位置。所以 VS 会打开页面,遵循重定向,然后超时尝试获取页面。

我们通过使用以下代码修改登录页面来修复它:

//If Request is coming from Visual Studio, just return an error         
if (Request.UserAgent.StartsWith("Microsoft-Visual-Studio.NET"))
{
    Response.StatusCode = 500;
    Response.End();
}

Visual Studio 可以处理 500。它无法处理未知主机的 302。

希望这可以帮助。

于 2010-09-15T15:03:34.083 回答
0

这对我有用...

http://forums.asp.net/p/1192304/2066860.aspx

在我的 XP 开发机器上,我转到“C:\Documents and Settings\USERNAME\VSWebCache\USERNAME\”并删除了与我的 VS2003 解决方案名称匹配的文件夹。(实际上我将文件夹移动到 C:\Temp 以防万一)。这很有效,尽管一个设计器文件在没有重新构建的情况下无法加载,并且需要重新标记启动页面。我不明白为什么我的解决方案依赖于这个 VSWebCache (当我重新构建我的解决方案时它重新出现。)任何人都可以解释这种依赖关系吗?这是不安定的。

于 2010-07-06T13:10:56.750 回答
0

您是否将服务包 1 应用于 Visual Studio 2003?

http://www.microsoft.com/downloads/details.aspx?familyid=69d2219f-ce82-46a5-8aec-072bd4bb955e&displaylang=en

于 2010-02-01T10:57:36.737 回答