2009-08-11 194 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 这对我来说非常合适。