使WCF服务工作

时间:2011-06-19 11:28:38

标签: asp.net wcf

我正在使用Visual Studio Express 2010,我创建了名为OperatorService.svc的WCF服务。我的App_Code IOperatorService.cs和OperatorService.cs中添加了两个文件。 我的web.config已更新为

  <system.serviceModel>
    <services>
      <service name="OperatorService">
        <endpoint address="https://ssl.mysite.com/WCF/OperatorService"   
            binding="ws2007HttpBinding" 
            bindingConfiguration="SecurityByTransport" 
            contract="IOperatorService" />
      </service>
    </services>
    <bindings>
      <basicHttpBinding>
        <binding name="SecurityByTransport">
          <security mode="Transport">
            <transport clientCredentialType="None" />
          </security>
        </binding>
      </basicHttpBinding>
    </bindings>
  </system.serviceModel>

现在,当我尝试在线访问此服务时,创建EndPoint会出错,但我无法确定如何创建EndPoint,尤其是当WCF地址为SSL HTTPS:启用网站时。

有人可以帮忙吗?

2 个答案:

答案 0 :(得分:3)

如果您是IIS主机,则端点地址应为空或相对地址。

WCF服务可以有基地址。基址定义了服务可以侦听的地址空间的核心部分,并且相对于该基址定义了端点。如果将地址留空,则端点将侦听基址。

当您自托管时,您可以通过几种不同的方式指定基址:在ServiceHost构造函数或配置文件中。但是,如果您是IIS主机,那么基址已经是给定的 - 它是.svc文件的位置

就HTTPS而言,如果您说您正在使用传输安全性,那么基本地址将自动映射到HTTPS,只要在IIS管理器中作为Web应用程序中的协议启用即可。但是,如果您使用的是Visual Studio Web开发服务器(也称为Cassini),那么它不支持SSL

答案 1 :(得分:2)

启动WCF配置工具(SvcConfigEditor.exe,它在Visual Studio菜单中可用,否则路径应为C:\ Program Files \ Microsoft SDKs \ Windows \ v6.0 \ Bin)并打开您的配置文件,它是帮助您进行正确配置的GUI工具。

配置文件中的错误是一个不完整的端点元素,您需要在端点上指定一些属性才能使其工作。最简单的方法是使用配置工具,但当然它可以手写。 MSDN有关于语法的参考。