我目前在IIS Express中为我所处理的每个应用程序配置了站点。每个站点都设置为在端口80和443上本地运行,但有单独的绑定(http://site1/和http://site2/),这些别名从我的主机文件中指向本地。
当直接(从命令行)启动IIS Express时,我可以同时启动这些站点,但在调试失败时让VS2010启动它们。第一个站点将按应有的方式启动和调试,但要启动的第二个站点会生成错误:“无法启动IIS Express Web服务器。端口80正在使用中。”
以下是我正在使用的IIS Express配置(稍作修改以删除项目名称):
<site name="Site1" id="1" serverAutoStart="true">
<application path="/" applicationPool="Clr4IntegratedAppPool">
<virtualDirectory path="/" physicalPath="Site1Path" />
</application>
<bindings>
<binding protocol="http" bindingInformation="*:80:Site1" />
<binding protocol="https" bindingInformation="*:443:Site1" />
</bindings>
</site>
<site name="Site2" id="2" serverAutoStart="true">
<application path="/" applicationPool="Clr4IntegratedAppPool">
<virtualDirectory path="/" physicalPath="Site2Path" />
</application>
<bindings>
<binding protocol="http" bindingInformation="*:80:Site2" />
<binding protocol="https" bindingInformation="*:443:Site2" />
</bindings>
</site>
看起来VS正在检查端口80上当前正在侦听的任何内容,而IIS Express并没有受到这种限制。我仍然可以让VS连接到通过命令行启动的IIS Express实例,但我更希望让VS管理它们。
这是否限制了VS2010处理IIS Express的方式?如果是,有什么好的解决方法?