0

私はと一緒に働いていHttpSelfHostServerますasp net mvc 4 web api

サーバーを作成するとき、通常は次のようなベースアドレスを指定しますhttp://foo.com:8080

10.0.0.0このサーバーには複数の IPがあるとしましょう10.0.0.110.0.0.2

私たちはそれも言うでしょう

  • http://foo.comに指差す10.0.0.0
  • http://bar.comに指差す10.0.0.1
  • http://baz.comに指差す10.0.0.2

HttpSelfHostServer がバインドされている場合、http://foo.com:8080なぜまだアクセスできるhttp://bar.com:8080のかhttp://baz.com:8080

サーバーをインスタンス化するコードは次のとおりです

    public Server(string name, Uri baseAddress)
    {
        Name = name;
        TimeCreated = DateTime.Now;
        BaseAddress = baseAddress;
        var config = new HttpSelfHostConfiguration(BaseAddress);

        config.Routes.MapHttpRoute(
            name: "DefaultApi",
            routeTemplate: "api/{controller}/{id}",
            defaults: new {id = RouteParameter.Optional}
            );

        // Create server
        _server = new HttpSelfHostServer(config);
    }    
4

2 に答える 2

1

この動作は、HttpSelfHostConfiguration の HostNameComparisionMode プロパティを変更することで変更できます。デフォルトでは、値は StrongWildCard です。

config.HostNameComparisonMode = System.ServiceModel.HostNameComparisonMode.StrongWildcard;

この設定の詳細については、http: //msdn.microsoft.com/en-us/library/system.servicemodel.hostnamecomparisonmode.aspxを参照してください。

于 2012-11-21T03:48:31.027 に答える
0

3 つのアドレスすべてが 127.0.0.1 に送信される可能性があります。別のマシンからそれらにアクセスしようとしましたか?

于 2012-11-21T03:22:02.927 に答える