【问题标题】:WCF REST Service (self-hosted) accessible only in local network (and must be accessed remotely)WCF REST 服务(自托管)只能在本地网络中访问(并且必须远程访问)
【发布时间】:2013-08-21 16:48:36
【问题描述】:

我有一个自托管的 REST 服务(在 C# 中),它可以在我的本地网络中完美运行,但无法远程访问。这是我的托管代码:

static Uri baseAddress = new Uri("http://m.y.i.p:8080");
WebServiceHost serviceHost = new WebServiceHost(typeof(WebService.RestService),
    baseAddress);
serviceHost.Open();

(在 Windows 窗体中运行,顺便说一句)。

这里是 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 时,它显示的正是我想要的。但是当我输入 m.y.i.p:8080/test 时,它无法访问。防火墙已关闭,我以管理员身份运行并且已经尝试过 netsh 命令。端口 8080 已正确转发到我的 PC。我怎样才能让它远程访问?

谢谢。

编辑: 对于将来研究这个问题的人来说,我的路由器有问题(我的 ip 改变了,我没有在路由器中改变它)。如果您正确定义 App.config,一切都应该正常工作。如果您遇到此问题,请仔细检查您的代码,确保您的网络以您期望的方式运行,如果需要关闭防火墙,如果您不是管理员,请使用this questionthis MS page 的答案拥有您想要的端口。

【问题讨论】:

  • 这听起来更像是 DNS 的问题
  • 我猜这不是 DNS,因为在这些测试之前,我为 Apache 使用了相同的端口并且它可以工作(当然我现在没有使用 Apache)。
  • 没有足够的信息来帮助...检查事件日志...
  • 这就是问题所在......事件日志中没有显示任何内容,就像没有建立连接一样。
  • 其实是路由器的问题。 +1 让我调查一下……对不起……

标签: c# wcf wcf-rest self-hosting


【解决方案1】:

改变

new Uri("http://m.y.i.p:8080");

new Uri("http://0.0.0.0:8080");

【讨论】:

  • +1 因为这对我有帮助,因为我知道我不需要在我将使用我的程序的每台 PC 上设置 IP。
猜你喜欢
  • 2016-04-18
  • 1970-01-01
  • 1970-01-01
  • 2012-03-11
  • 1970-01-01
  • 1970-01-01
  • 2011-06-30
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多