我已经获得了一个代码库,其中 WCF 服务托管在 IIS 中。该项目使用开发服务器,但这并不重要。web.config 文件仅包含以下用于服务配置的部分:
<system.serviceModel>
<behaviors>
<serviceBehaviors>
<behavior>
<serviceMetadata httpGetEnabled="true"/>
<serviceDebug includeExceptionDetailInFaults="false"/>
</behavior>
</serviceBehaviors>
</behaviors>
<serviceHostingEnvironment multipleSiteBindingsEnabled="true" />
</system.serviceModel>
.svc 文件包含以下内容:
<%@ ServiceHost Language="C#" Debug="true" Service="TestApp.MySvcClass" CodeBehind="MySvcClass.svc.cs" %>
MySvcClass 实现合同 (ISvcContract)。问题是,在 .NET 4 下,此配置有效。任何地方都没有任何声明可以建立合同和服务类型之间的联系,没有任何东西可以将行为与服务类型联系起来,没有终点声明,但它仍然有效。对于 .net 3.5,它不会。它抱怨配置。
WCF 服务项目配置的默认行为是什么?它记录在哪里?我可以强制这些类型的设置失败吗?
我没有时间测试,但如果我添加另一个 svc 文件,项目可能会发疯,因为单个服务可能会神奇地到位,但我宁愿不以智能方式处理配置。