2010-10-12 101 views
8

我正在尝试运行WCF web服务,它将参与分布式事务。我不断收到以下错误消息...无法找到配置绑定扩展

无法找到配置绑定扩展名'system.serviceModel/bindings/myBinding'。验证此绑定扩展在system.serviceModel /扩展/ bindingExtensions正确注册和拼写正确

这里是web.config中

<system.serviceModel> 
<services> 
    <service name = "DistServiceX"> 
    <endpoint 
     address="" 
     binding="myBinding" 
     contract="IDistService" 
    /> 
    </service> 
</services> 
<bindings> 
    <wsHttpBinding> 
    <binding 
     name="myBinding" 
     transactionFlow="true" 
     /> 
    </wsHttpBinding> 
</bindings> 

<behaviors> 
    <serviceBehaviors> 
    <behavior name=""> 
     <serviceMetadata httpGetEnabled="true" /> 
     <serviceDebug includeExceptionDetailInFaults="false" /> 
    </behavior> 
    </serviceBehaviors> 
</behaviors> 
<serviceHostingEnvironment multipleSiteBindingsEnabled="true" /> 

任何人都可以看到什么是这个错误?这让我疯狂!

感谢

皮特

回答

10

你指的是一个自定义绑定在这里:

<service name = "DistServiceX"> 
    <endpoint 
     address="" 
     binding="myBinding" 
     contract="IDistService" /> 

然而,没有绑定称为myBinding在你的配置在任何地方习俗。

我假设您确实想要参考您在配置文件中指定的wsHttpBindingmyBinding绑定配置。此外:服务的名称必须与实现服务的类的完全限定名称相匹配 - 包括名称空间(还有:由该服务实现并在给定端点上公开的合同的名称必须包含任何名称空间):

<service name="YourNamespace.DistServiceX"> 
    <endpoint 
     address="" 
     binding="wsHttpBinding" 
     bindingConfiguration="myBinding" 
     contract="YourNamespace.IDistService" /> 
+0

你是对的。另外,尽管我还必须使用命名空间完全质量IDistService接口,并且还要指定实现类的namespace.class,而不是“DistServiceX” – 2010-10-13 10:56:02

+0

Hi Marc。你可以在你的回应中包括这一点吗?一旦答复完成,我可以接受它作为答案。如果在接受的答案中提及配置的所有问题,它将在未来对其他人更有用。 – 2010-10-14 10:25:25

+0

@彼得莫里斯:好点 - 答案已更新。 – 2010-10-14 10:31:38