我在web.config中添加了行为扩展名:
<extensions>
<behaviorExtensions>
<add name="WebAppBeaviourElement" type="WebApp.Extensions.CustomBehaviorExtensionElement, WebApp.Extensions, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" />
</behaviorExtensions>
</extensions>
<behaviors>
<endpointBehaviors>
<behavior name="WebAppBeaviour">
<WebAppBeaviourElement />
</behavior>
</endpointBehaviors>
</behaviors>
但在Visual Studio 2010中存在错误 - Visual Studio无法看到WebAppBehaviourElement并收到错误:/
所以我认为可以在代码中将此扩展添加到endpointBehaviours?在代码中我应该这样做吗?
答案 0 :(得分:1)
您可以扩展主机工厂
public class ExtendedHostFactory : WebServiceHostFactory
然后,向主机添加行为
protected override ServiceHost CreateServiceHost(System.Type serviceType, System.Uri[] baseAddresses)
{
ServiceHost host = base.CreateServiceHost(serviceType, baseAddresses) as WebServiceHost;
host.Description.Behaviors.Add(new ValidateApiKey()); // ValidateApiKey is an IServiceBehavior
}
您可以在config中添加主机。如果您也为此选择代码,请将其添加到global.asax中,如下所示
ExtendedHostFactory factory = new ExtendedHostFactory();
RouteTable.Routes.Add(new ServiceRoute(@"myservice/path", factory, typeof(MyService)));
答案 1 :(得分:0)
Visual Studio 2010针对XSD架构验证配置文件。 一个是在这里定义的system.serviceModel没有你的自定义行为,但程序运行。