葡萄藤REST服务器,我无法从其他PC与IP或主机名
本文关键字:PC IP 主机 其他 服务器 REST 葡萄藤 | 更新日期: 2023-09-27 18:16:44
我正在使用VS2012和Grapevine 3.0.4,当我使用与localhost相同的Grapevine机器时主机名,一切正常。如果我想通过客户端从其他PC到达,服务器无法开始监听主机名ip地址或计算机名
如果我尝试服务器pc设置主机名为本地主机,它开始侦听,但当从其他pc与IP或名称服务器到达时返回错误的请求400
是我的代码或库有问题吗?
我的服务器代码是
public class embeddedHTTP
{
private RESTServer Server;
public void ServerStart()
{
try
{
Server = new RESTServer();
Server.Port = GlobalVars.HttpHostPort;
Server.Host = GlobalVars.HttpHostAdress; // THIS ONLY WORKS FOR LOCALHOST
Server.MaxThreads = 20;
Server.Start();
while (Server.IsListening)
{
Thread.Sleep(GlobalVars.HttpHostRespTime);
}
}
catch (Exception ex)
{
messenger.logque("embedded HTTP server not started, Error ID : 52", 3, null);
}
}
public void ServerStop()
{
Server.Stop();
}
public sealed class MyResource : RESTResource
{
//d+$^ [a-zA-Z]+
[RESTRoute(Method = Grapevine.HttpMethod.GET, PathInfo = @"/")]
public void HandleFooRequests(HttpListenerContext context)
{
//String RawuR = context.Request.RawUrl;
String URL = Convert.ToString(context.Request.Url);
String ResultXML = brain.HTTPCMD(URL);
this.SendTextResponse(context, ResultXML);
}
}
}
如果您无法从远程机器到达服务器,那么您可能正在运行防火墙,该防火墙正在阻止到您正在侦听的端口的入站通信。试着打开防火墙的端口,看看是否可以。
如何在Windows 7防火墙中打开端口
还可以通过使用星号(*)作为主机名来监听所有主机。