IIS Express - Visual Studio - 在同一端口上运行多个站点

时间:2016-05-03 15:31:34

标签: visual-studio iis

我有多个使用相同端口的API(8888)。这些API是不同解决方案的一部分。

http://localhost:8888/api1

http://localhost:8888/api2

...

当我在visual studio 2013中运行任何API时(点击F5),iis express启动并且所有API都在运行。即使API是不同解决方案的一部分,也会发生这种情况。当我点击View Sites下的iis express图标时,我可以看到它们。

我安装了VS 2015,当我在visual studio中运行一个API时,其他API无法运行。自从我得到以后,我甚至无法在其他解决方案中运行其他API:

tick: {
  values: ["[-25 ans]", "[25-29 ans]","[30-34 ans]", "[25-29 ans]","[30-34 ans]","[35-39 ans]"]
}

如何在运行任何API时运行其他API?我需要模仿VS 2015中VS 2013中存在的行为。

感谢。

3 个答案:

答案 0 :(得分:2)

我解决了类似场景的问题,但在我的情况下,我选择通过命令行运行IISExpress并将配置文件作为参数传递。

  1. 编辑applicationhost.config文件。我通过文件夹路径%USERPROFILE%\ Documents \ IISExpress \ config
  2. 找到了我的
  3. 找到< sites>部分(在< system.applicationHost>下找到)
  4. 作为一个例子,我有两个应用程序,我想在localhost上的端口80上同时托管:

    <script type="text/javascript">
    $(document).ready(function () {
        //Dropdownlist Selectedchange event
        $("#Town").change(function () {
            $("#Surburb").empty();
            $.ajax({
                type: 'POST',
                url: '@Url.Action("GetSurburbs")', // we are calling json method
    
                dataType: 'json',
    
                data: { id: $("#Town").val() },
               // here we are get value of selected country and passing same value
    
    
                success: function (states) {
                    // states contains the JSON formatted list
                    // of states passed from the controller
    
                    $.each(states, function (i, state) {
                        $("#Surburb").append('<option value="' + state.Value + '">' +
                         state.Text + '</option>');
                    // here we are adding option for States
    
                    });
                },
                error: function (ex) {
                    alert('Failed to retrieve Surburbs.' + ex);
                }
            });
            return false;
        })
    });
    </script>
    

    我必须做的关键事情是:

    1. 确保applicationhost.config是格式良好的XML
    2. 除了两个api应用程序路径之外,还要确保指定根路径
    3. serverAutoStart =“true”确保在调用IISExpress时启动站点
    4. 所有应用程序共享相同的applicationPool
    5. 我只定义了一个网站,并在我的所有应用程序中捆绑为子路径

答案 1 :(得分:0)

在Visual Studio 15+中对此进行更新,IIS配置文件夹位于项目隐藏的.vs文件夹中[ProjectFolder] /。vs / [ProjectName] /config/applicationhost.config 除此之外,Ivor's Answer仍然为我工作。

答案 2 :(得分:0)

如果您确实想要旧的行为,请在您的项目文件中使用全局应用程序宿主文件,

class UsingFetch extends Component{
  constructor(){
    super();
    this.state = {
      isLoaded:false,
    }
  }

  render() {
    return (
      <div>
        {this.props.datasource.map(item =>
          <div>
            {item.name}
          </div>
        )}
      </div>
    )
  }
}

http://blog.majcica.com/2018/03/15/using-global-application-host-file-in-visual-studio-2015/