2009-08-11 195 views

回答

1

有一些問題,你需要問自己:

  • 如何以及在哪裏做您計劃託管服務(IIS自託管?)?
  • 你打算使用哪種協議/綁定? basicHttp是最簡單的,但也是最有限的 - 它不支持太多的安全性,沒有可靠的會話等,但它與其他系統的互操作性是它的巨大優勢
  • 或者你想公開一個REST服務,你的用戶只會返回XML或JSON?
  • 你需要什麼樣的安全性?傳輸級?消息級?
  • 你會認證你的用戶嗎?怎麼樣? Windows憑據?證書?用戶名密碼?一點也不?
  • 你會在哪裏(什麼地址和端口)公開提供你的服務?
  • 如果您使用基於SOAP的方法:潛在客戶如何知道此服務?您是否希望在線提供元數據(WSDL,XSD)(地址爲xxxx?wsdl)?您是否想將明確的元數據作爲文件發送給您的客戶?你會自己創建一個WCF客戶端代理類,並使該程序集可供下載?

一旦你擁有所有的答案,一切都應該是明確的:-)

馬克

+0

感謝marc爲您提供指導。 – 2009-08-11 11:51:28

0

我知道已經晚了,但是這可能幫助一些新的SO用戶

如果你的服務是在IIS上運行沒有任何問題,那麼你需要通過以下步驟來訪問此服務通過互聯網

假設:

我的解決方案名稱爲SearchServiceLibrary

接口名稱是ISEARCH

類名稱是搜索和這個類實現ISEARCH接口

第1步: 如果您的PC在NAT後面,您需要轉發PORT告訴你的路由器應該在哪裏發送接收到的Web服務請求。

步驟2:要指定域名/在WSDL文件服務器的IP地址

更新或編輯繼app標記。配置文件

<serviceMetadata httpGetEnabled="True" httpGetUrl="http://DomainName_OR_IPAddress:PORT/SearchServiceLibrary.Search.svc/basic"/> 

步驟3:設置皁位置的app.config文件

您需要在您的app.config文件添加一個終點,你可以描述性做到這一點或者通過使用選項編輯WCF CONFIGURATIONS

<service name="SearchServiceLibrary.Search"> 
       <endpoint address="http://DomainName_OR_IPAddress:PORT/SearchServiceLibrary.Search.svc/basic" binding="basicHttpBinding" 
      contract="SearchServiceLibrary.ISearch"> 
      <identity> 
      <dns value="localhost" /> 
      </identity> 
    </endpoint> 

或使用選項EDIT WCF配置

enter image description here 這對我來說非常合適。