我有一个现有的 ASP.NET Web 应用程序在 HTTPS 上的生产(.NET 4.0、IIS 7.0)中运行(我们称之为https://myapp.com)。现在需要向应用程序添加一个新的 WCF 服务,该服务将由位于不同服务器上的桌面应用程序使用。这是我所做的:
- 在我现有项目的目录 /WebServices 中添加一个新的 WCF 服务(称为 myService.svc)(在 localhost 上工作正常)。
- 照常发布网站。
- 如下配置我的网络服务
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 的新手,并且在这个问题上停留了太久。