如何在使用VS2010的开发服务器上,测试将ASP.NET Web应用程序作为64位进程运行的方法?

4
我的任务很简单:我需要在我的开发机上以64位环境测试ASP.NET Web应用程序。(这时我甚至不考虑通过调试器来运行。我所需的只是在一个64位进程中运行它。)
因此,我在Visual Studio 2010中创建了一个标准的C# Web应用程序,并将其属性调整为如下所示:
然后我执行了Ctrl+F5(或者没有调试地运行),IE加载并停留在这个页面:
我做错了什么?
PS. 在Windows 7 Ultimate(64位)上运行。

你不需要任何特定的设置来在64位上运行,可能有其他问题,去检查事件日志。 - fengd
@MitchWheat:是的,我有。 :) 顺便说一句,我还尝试在配置管理器中将项目设置为x64。此时,我无法在本地IIS中使用任何一种情况启动它。 - c00000fd
@Jun1st:事件日志很清楚。它有一些来自SQL Server的信息消息,但没有涉及IIS的内容。 - c00000fd
@c00000fd 你期望的输出是什么?在安装 VS2010 后,你是否安装了 IIS? - fengd
@Jun1st:我希望这个测试Web应用程序至少能够启动。它是一个存储项目,如果我从开发服务器运行它,它就会启动(但它作为32位进程运行)。是的,我刚刚安装了IIS。VS2010已经安装了几年。 - c00000fd
1
@c00000fd 在安装vs2010之前需要先安装IIS,否则你需要再次运行aspnet_regiis。不确定这是否是确切的问题,但当我在安装iis之前安装vs并遇到与您现在相同的奇怪问题时,重新注册aspnet就可以解决。因此,值得一试。 - fengd
4个回答

15
我们遇到了同样的问题,当团队转向Visual Studio 2012时,这个注册表键对我们非常有用:
你可以添加一个注册表键来强制Visual Studio使用64位版本的iisexpress.exe;不幸的是,这是一个只适用于VS2012的解决方案。
reg add HKEY_CURRENT_USER\Software\Microsoft\VisualStudio\11.0\WebProjects
    /v Use64BitIISExpress /t REG_DWORD /d 1

然后重新启动Visual Studio,并在设置中勾选[X]使用IIS Express。(另请参见来源。)
更新:在Visual 2013中,此选项可以在界面中找到:选项/项目和解决方案/ Web项目/使用64位版本的IIS Express用于网站和项目。

1
请评论下投票。我知道这个问题与VS2010有关,但如果不为那些在更近期的Visual Studio版本上遇到同样问题的人提供解决方案,那就太狭隘了。 - JB.
1
谢谢您的回答。我仍然没有解决我的问题,但是您的帖子让我朝着正确的方向前进了一步。这个踩(downvote)并不公正。 - Alon Catz
1
确认: 我有一个网络应用程序,我将其从AnyCPU转换为64位。它立即遇到了加载其他已转换的64位库(也已转换)的问题。在注册表中进行此更改后,它立即开始工作。 问题: 在Visual Studio的后续版本中是否有此设置? - Aron Boyette
我在一个Web项目中引用了64位dll。对我来说,通过在VS2017 RC中勾选“选项/项目和解决方案/Web项目/为网站和项目使用IIS Express的64位版本”选项,它可以正常工作。 - Oktay

2

在IIS中,确保应用程序池->高级设置->启用32位应用程序=false。

如果此设置为true,则工作进程将作为32位WOW64进程运行。

Chris


0

在项目或解决方案级别上不需要进行任何设置。我正在同时开发32位和64位机器上的VS2010 WebApp。实际上,我们正在使用SVN,并且我们的一些机器有Win7 32位,我的一些同事有Win7-64位笔记本电脑。但是我们在两台不同的机器上编译应用程序时没有遇到任何问题,甚至在生产服务器上也运行得非常顺畅。几乎不需要关心位和字节。

为了验证测试运行,请发布您的代码并在本地IIS或Cassini Web服务器上托管,并通过局域网访问它。

如果可能,请将解决方案和项目设置恢复到其原始配置设置。通常,我们不需要更改目标,除非绝对必要。据我所知,它将程序集编译为“Any CPU”作为目标,这适用于所有IA、X64和X86。

最后,如果您遇到任何错误,请在此处发布。这将有助于您和我们。


0
首先,您如何知道您的IIS进程当前是以32位还是64位运行您的网站?打开任务管理器来检查w3wp.exe的位数。如果您的机器是64位,则IIS默认会以64位运行。您的问题似乎是其他问题。如果位数是问题,那么您甚至不会走到这一步。检查IIS日志(c:\ inetpub \ logs {website-ID} {date})...那可能会给您一些指针。如果里面没有任何内容,请检查事件查看器。如果仍然没有,请检查虚拟目录是否实际在IIS管理器下的默认网站中创建。
您是否真正测试过IIS(除ASPX之外)是否可用?http:// localhost?是否有效?如果有效,则建议检查您的ASP.NET模块是否已正确安装在IIS中。
希望这可以帮助您。

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