2016-04-15 8 views
5

Я пытаюсь запустить хост с IP https://0.0.0.0:9000 с Nancy Host но я получаю System - The request is not supported исключение. Ниже мой код.Возможно ли запустить хост 0.0.0.0:port с nancy?

string strHostProtocol = "https"; 
string strHostIP = "0.0.0.0"; 
string strHostPort = "9000"; 

var url = strHostProtocol + "://" + strHostIP + ":" + strHostPort; 
this.host = new NancyHost(new Uri(url)); 
this.host.Start(); 

Это позволит мне начать другой IP-адрес, как 127.0.0.1:9000, 192.168.100.10:9000 и т.д., но не 0.0.0.0:9000. Я читал, что это действительный IP-адрес. Но мой вопрос, почему это не пускается? Является ли этот IP зарезервирован для каких-либо целей?

Update


Единственная цель здесь, я пытаюсь получить доступ к внутренним IP через публичный IP при условии. Но Нэнси, хотя и запускает внутренний IP-порт с портом, когда запрос предоставляется через публичный IP-адрес, он не узнает. Не уверен, достигнуто это или нет.

+0

Это дизайн TCP/IP, 0.0.0.0 означает «все» или «все» ipv4 адрес на локальной машине и на этой 0.0.0.0 является немаршрутизируемым какой-то мета-адрес. Маршрутизация, если вы установите 0.0.0.0 в качестве адресата маршрутизации, это означает, что это элемент маршрутизации для всех других сетевых адресов. – kayess

+0

@ ʞaʎess .. Я пытаюсь это сделать, потому что я сделал IP-адрес системы как общедоступный IP-адрес, и я начал локальный IP-адрес с портом 9000. Я могу подключить этот порт к публичному IP-адресу, но я не могу использовать браузер так же через интернет. Я слышал, что начало с '0.0.0.0' было бы полезно. –

+2

Вы хотите, чтобы вы привязывали nancy ко всем интерфейсам, таким как каждый возможный IP-адрес, выделенный локальному блоку? Если это так, вы можете попробовать заменить «0.0.0.0» на «+», который является подстановочным знаком. – kayess

ответ

4

Я понял, как:

HostConfiguration hostConf = new HostConfiguration(); 
hostConf.RewriteLocalhost = true; 
var apiHost = new NancyHost(hostConf, new Uri("http://localhost:8080")); 
apiHost.Start();