0

我有一个现有的 ASP.NET Web 应用程序在 HTTPS 上的生产(.NET 4.0、IIS 7.0)中运行(我们称之为https://myapp.com)。现在需要向应用程序添加一个新的 WCF 服务,该服务将由位于不同服务器上的桌面应用程序使用。这是我所做的:

  1. 在我现有项目的目录 /WebServices 中添加一个新的 WCF 服务(称为 myService.svc)(在 localhost 上工作正常)。
  2. 照常发布网站。
  3. 如下配置我的网络服务web.config

配置:

<system.serviceModel>
  <bindings>
    <basicHttpBinding>
      <binding name="TransportSecurity">
        <security mode="Transport">
          <transport clientCredentialType="None"/>
        </security>
      </binding>
    </basicHttpBinding>
  </bindings>

  <services>
    <service name="myService" behaviorConfiguration="myBehavior">
      <endpoint address="https://myapp.com/Webservices/myService.svc" binding="basicHttpBinding"
         bindingConfiguration="TransportSecurity" contract="myService"/>
      <endpoint address="mex" binding="mexHttpsBinding" contract="IMetadataExchange"/>
    </service>
  </services>

  <behaviors>
    <serviceBehaviors>
      <behavior name="myBehavior">
        <serviceMetadata httpGetEnabled="true" httpsGetEnabled="true"/>
        <serviceDebug includeExceptionDetailInFaults="false" />
      </behavior>
    </serviceBehaviors>
  </behaviors>
  <serviceHostingEnvironment multipleSiteBindingsEnabled="true" />
</system.serviceModel>

在我看来,我已经完成了所有需要的事情。当我在浏览器中运行 URLhttps://myapp.com/WebServices/myService.svc时,我得到“找不到资源”。为了仔细检查,我创建了一个测试控制台应用程序并尝试使用相同的 URL 来“添加服务引用”,但它没有发现它。

我究竟做错了什么?我是 WCF 的新手,并且在这个问题上停留了太久。

4

0 回答 0