2
<system.serviceModel>
  <extensions>
      <behaviorExtensions>
          <add name="WSDLFlatteningExtension" type="Thinktecture.ServiceModel.Extensions.Description,Thinktecture.ServiceModel.Extensions.Description,Version=1.0.0.0,Culture=Neutral,PublicKeyToken=f0de9a190a6d23d1"/>
      </behaviorExtensions>
  </extensions>
  <behaviors>
    <endpointBehaviors>
      <behavior name="WSDLFlatteningBehavior">
          <WSDLFlatteningExtension />
      </behavior>
    </endpointBehaviors>    
  </behaviors>
</system.serviceModel>

<WSDLFlatteningExtension />我的 web.config 无法识别上面的行。在运行时引发错误。我已经在 C:\windows\Assembly 和 C:\Program Files\Microsoft Visual Studio 9.0\Common7\IDE 中删除了 dll,但似乎没有任何效果。

4

4 回答 4

1

假设错误是 AssemblyNotFoundException,那么您也可以尝试将 DependentAssembly 引用添加到您的配置文件中,以便框架可以解析 type 中指定的 AssemblyName。

于 2011-03-31T20:21:31.483 回答
1

我能够解决这个问题。这是我引用的 dll 的问题。我必须在该类中实现 BehaviorExtensionElement 以使其在配置中可用。

于 2011-04-01T16:10:45.553 回答
0

我建议您检查type=属性中指定的类型名称 - 我看起来不正确。您需要指定IEndpointBehavior要添加的类型的完全限定名称。

于 2011-04-01T08:39:27.817 回答
0

是的, type= 属性对我来说也是错误的。它应该类似于 type="Your.Full.Namespace.ClassName,Your.Assembly.Name,Version,Culture,PublicKeyToken"。

来自 MSDN 的示例

type="Microsoft.WCF.Documentation.EndpointBehaviorMessageInspector, HostApplication, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null"
于 2011-04-01T12:39:12.567 回答