0

我有 Windows xp sp3、Visual Studio 2010 sp1、IIS Express 7.5 和 IE8。在 VS 2010 中,我将 IIS Express 用于新的基于文件的网站和项目。

每当我从 VS 开始调试时,它都会打开 IE 空窗口,然后一切都冻结了。唯一的选择是关闭计算机。

IIS 默认站点的绑定 – applicationhost.config 文件中的 WebSite1 设置为

// 绑定协议="http" bindingInformation=":8080:localhost"//

如果我从命令提示符启动 IIS Express,常见结果如下:

1) 如果我从任务栏中的 IIS Express 图标 - iisexpresstray 启动 Website1,大多数时候我会收到带有消息“Internet Explorer 无法显示网页”的 IE 窗口。从博客文件中,我可以看到唯一不寻常的事情是 Client-IP 和 Server-IP 以 IPv6 格式“::1”给出</p>

在所有其他时间,一切都冻结了,既没有记录在博客文件中,也没有记录在网络跟踪文件中。此外,windows 事件查看器没有任何与此事件相关联的记录事件。

2) 如果我尝试直接从 IE http://localhost:8080/ 打开 Website1,大多数情况下网站都可以正常打开。从博客文件中,我发现 Client-IP 和 Server-IP 被指定为 127.0.0.1。

有时我得到“Internet Explorer 无法显示网页”,并且博客文件再次将 IPv6 格式的 Client-IP 和 Server-IP 显示为“::1”。

有时它会像上面那样冻结窗口,无论是在 weblog 文件、web 跟踪文件还是 windows 事件查看器中都没有任何痕迹。

有什么想法吗?请记住,我对这些事情的了解有限。

4

2 回答 2

0

您可以尝试两件事:

1) 禁用网卡的 IPv6 功能(假设您实际上没有使用 IPv6)。这可以通过网上邻居和访问您的卡的设置来完成。

2) 尝试在不同的端口上运行 IIS,看看行为是否仍然存在。根据您机器的配置,可能有一些东西已经在端口 8080 上侦听,并且没有被干净地处理。

当我第一次开始使用 IIS Express 时遇到了一些类似的问题,我会通过让它在非标准端口上运行以进行测试来解决这些问题。

于 2012-08-09T15:41:56.643 回答
0

在我看来,问题出在路由链的某个地方。链中的某些链接(如果它能够使窗口崩溃,则显然是重要的!)不理解 IPv6 语法。我既没有技能也没有时间对此进行进一步调查,但至少我想出了解决方法。

这个想法是迫使每个人都使用 IPv4 符号而不是 IPv6 符号。

    1) In Visual Studio 2010 SP1 open project’s properties page
    2) Select “Web” tab. 
    3) In the “Servers” area select “Apply server settings to all 
    users (store in project file)”, 
    4) Select “Use Local IIS Web server”, 
    5) Select “Use IIS Express” 
    6) In the Project Url text box enter 
    http://127.0.0.1:8081 
    instead of 
    http://localhost:8081 .

或检查并最终手动更改:

    1) In C:\...\My Documents\IISExpress\config\ applicationhost.config replace
    <binding protocol="http" bindingInformation="*:8081:localhost" /> 
    with
    <binding protocol="http" bindingInformation="*:8081:127.0.0.1" />

    2) Also in Visual studio project file *.csproj replace
    <IISUrl>http://localhost:8081/</IISUrl> 
    with
    <IISUrl>http://127.0.0.1:8081/</IISUrl>.
于 2012-08-11T01:31:09.587 回答