簡體   English   中英

WCF REST服務(自托管)只能在本地網絡中訪問(必須遠程訪問)

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM