[英]WCF REST Service (self-hosted) accessible only in local network (and must be accessed remotely)
我有一个自托管的REST服务(在C#中),该服务在我的本地网络中可以正常运行,但是无法远程访问。 这是我的托管代码:
static Uri baseAddress = new Uri("http://m.y.i.p:8080");
WebServiceHost serviceHost = new WebServiceHost(typeof(WebService.RestService),
baseAddress);
serviceHost.Open();
(在Windows窗体,BTW中运行)。
这是App.Config:
<?xml version="1.0"?>
<configuration>
<system.serviceModel>
<bindings>
</bindings>
<services>
<service name="WebService.RestService" behaviorConfiguration="Default">
<host>
<baseAddresses>
</baseAddresses>
</host>
<endpoint address="" binding="webHttpBinding"
behaviorConfiguration="webBehavior"
contract="WebService.ICarga">
</endpoint>
</service>
</services>
<behaviors>
<endpointBehaviors>
<behavior name="webBehavior">
<webHttp />
</behavior>
</endpointBehaviors>
<serviceBehaviors>
<behavior name="Default">
<serviceMetadata httpGetEnabled="true"/>
<dataContractSerializer maxItemsInObjectGraph="2147483647"/>
</behavior>
</serviceBehaviors>
</behaviors>
</system.serviceModel>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/>
</startup>
</configuration>
在浏览器中输入10.1.1.1:8080/test时,它恰好显示了我想要的内容。 但是,当我键入myip:8080 / test时,它是无法访问的。 防火墙已关闭,我以管理员身份运行,并且已经尝试过netsh命令。 端口8080已正确转发到我的PC。 如何使它可以远程访问?
谢谢。
编辑:对于以后研究这个问题的人,我的路由器有问题(我的IP更改了,而我没有在路由器中更改它)。 如果您定义了App.config权限,那么一切都会正常。 如果遇到此问题,请仔细检查您的代码,确保您的网络以预期的方式工作,如果需要,请关闭防火墙,如果您不是管理员,请使用此问题的答案或该MS页面拥有您所需的端口。
更改
new Uri("http://m.y.i.p:8080");
至
new Uri("http://0.0.0.0:8080");
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.