0

如果你是一个初学者,真的很难掌握 Web 服务,不是因为这个概念很难——它不是——而是因为这项技术经历了很多曲折,谷歌搜索帮助无济于事你得到的答案是稍微不同的实现。

[例如,我们的解决方案从未有过 .svc 文件或 .asmx 文件,尽管这些文件经常出现在答案中,而我们的 web.config 没有任何behaviorbinding元素,就像其他人似乎有的那样]

我们使用教程来设置我认为在 IIS6 上运行的“WCF Web 服务”。它工作正常。

但我们想将其转换为使用加密/https。

所以我们检查了IIS 中的要求安全通道框:
在此处输入图像描述

不知道还有什么配置在那里,但是......无论如何,继续前进。接下来我想我们必须修改我们的 web.config 文件......但是什么以及如何?这是我们system.serviceModel在 web.config 中的内容:

<system.serviceModel>
    <serviceHostingEnvironment aspNetCompatibilityEnabled="true"></serviceHostingEnvironment>
    <standardEndpoints>
        <webHttpEndpoint>
            <standardEndpoint name="" helpEnabled="true" automaticFormatSelectionEnabled="true"></standardEndpoint>
        </webHttpEndpoint>
    </standardEndpoints>
</system.serviceModel>

那么接下来我们需要做什么呢?

4

1 回答 1

0

好的,不幸的是,如果没有所有代码,很难进行规范,但这里是概述:

您需要将这些绑定和行为添加到 web.config 中。

我将从一个 basicHttpBinding 开始,让它像现在一样工作,但是这次你将指定你的绑定细节而不是使用默认值。要“关闭”https,请将 bindingConfiguration 中的安全模式更改为 None。

完成后,您的 WCF 服务将拥有类似的内容:

<services>
    <service behaviorConfiguration="webServiceClientBehavior" name="My.Service.ServiceName">
            <endpoint address="http://localhost:5803/LSClient"  binding="basicHttpBinding" bindingConfiguration="secureBinding" contract="My.Service.IServiceName"/>
    </service>
</services>

对于绑定配置:

<bindings>
      <basicHttpBinding>
        <binding name="secureBinding">
          <security mode="Transport" />
        </binding>
      </basicHttpBinding>
</bindings>

对于行为配置:

<serviceBehaviors>
       <behavior name="webServiceClientBehavior">
          <!--For MetaData-->
          <serviceMetadata httpGetEnabled="true" httpGetUrl="http://localhost:5802/LSClientMD"/>
          <serviceDebug includeExceptionDetailInFaults="true"/>
        </behavior>
</serviceBehaviors>

这些将需要根据您的实施稍作调整,但这是一个基本概述。

于 2012-08-03T16:17:56.557 回答