我目前在IIS Express中为每个我一直在使用的应用程序配置了站点。它们中的每一个都设置为在端口80和443上本地运行,但具有单独的绑定(http://site1/和http://site2/),以及在我的主机文件中本地指向的别名。通过Visual Studio在同一端口上运行多个IIS Express实例
我可以在直接启动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快递ISN不受那种限制。我仍然可以将VS附加到通过命令行启动的IIS Express实例,但我更愿意让VS管理它们。
这是VS2010如何处理IIS Express的限制,如果是这样,什么是一个很好的解决方法?
虽然有似乎是我没有真正的解决方案,我会继续和标志这是作为tho的答案它可能会有所帮助。虚拟目录对我来说不起作用,但是幸运的是我并不需要同时运行的两个应用程序,所以让VS启动它们现在仍然有效。 – 2011-05-16 18:36:52
@vikomall,如何使用C#代码配置这些多个应用程序?我想使用C#代码为单个IIS Express实例配置多个应用程序。 – 2018-02-07 06:12:16