2

我创建了一个 WCF 服务及其使用 SSL。我可以编译并启动服务。但是,我无法在网络浏览器中点击它。它只说“与 192.168.1.12 的连接已中断。” 我确保我的浏览器已启用它,并且它可以在使用 SSL 的其他网站上运行。我是 WCF 服务的新手,因此任何有关故障排除的建议或技巧都会有所帮助。

我没有使用 IIS**

以下是我的网络配置信息:

<system.serviceModel>
    <bindings>
      <basicHttpBinding>
        <binding name="WSHttpBinding_IApplicationService" closeTimeout="00:01:00" openTimeout="00:01:00" receiveTimeout="00:10:00" sendTimeout="00:01:00" bypassProxyOnLocal="false" hostNameComparisonMode="StrongWildcard" maxBufferPoolSize="2147483647" maxReceivedMessageSize="2147483647" messageEncoding="Text" textEncoding="utf-8" useDefaultWebProxy="true" allowCookies="false">
          <readerQuotas maxDepth="32" maxStringContentLength="2147483647" maxArrayLength="6553600" maxBytesPerRead="4096" maxNameTableCharCount="16384" />
          <security mode="Transport">
            <transport clientCredentialType="None" proxyCredentialType="None" realm=""/>
            <message clientCredentialType="Certificate" algorithmSuite="Default" />
          </security>
        </binding>
      </basicHttpBinding>
    </bindings>
    <serviceHostingEnvironment aspNetCompatibilityEnabled="true" />
    <services>
      <service name="Application.ServiceModel.ApplicationService" behaviorConfiguration="ApplicationServiceBehavior">
        <host>
          <baseAddresses>
            <add baseAddress="https://192.168.1.12:8000/ApplicationServiceModel/service" />
          </baseAddresses>
        </host>
        <endpoint address="" binding="basicHttpBinding" bindingConfiguration="WSHttpBinding_IApplicationService" contract="Application.ServiceModel.IApplicationService" />
        <endpoint address="mex" binding="mexHttpsBinding" contract="IMetadataExchange" />
      </service>
    </services>
    <behaviors>
      <serviceBehaviors>
        <behavior name="ApplicationServiceBehavior">
          <serviceMetadata httpsGetEnabled="true" />
          <serviceDebug includeExceptionDetailInFaults="true" />
        </behavior>
      </serviceBehaviors>
    </behaviors>
  </system.serviceModel>
4

1 回答 1

1

自签名证书通常被认为是无效的,并且仅真正用于测试。

在 wcf 中,您可以使用以下内容忽略证书错误(在客户端上)。

ServicePointManager.ServerCertificateValidationCallback = delegate { return true; };

但是,它应该只用于测试。在生产环境中,您希望获得由受信任的证书颁发机构签署的证书。

于 2012-09-07T23:10:48.497 回答