gpt4 book ai didi

wcf - 如何添加终结点行为以打开 IIS 托管的 WCF 服务

转载 作者:行者123 更新时间:2023-12-02 02:26:14 25 4
gpt4 key购买 nike

我有一个 IIS 托管的 WCF 服务,我需要向它添加端点行为。我不能只将它添加到 web.config。 (我们需要支持插件架构,插件编写者将无法访问我的 web.config。)我尝试将其放入服务的静态构造函数中:

var endpointDispatcher = OperationContext.Current.EndpointDispatcher;
SilverlightFaultMessageInspector inspector = new SilverlightFaultMessageInspector();
endpointDispatcher.DispatchRuntime.MessageInspectors.Add(inspector);

但它会抛出一个异常,提示“打开 ServiceHost 后无法更改此值”。如果我在添加检查器对象之前调用 host.Close(),它仍然会抛出相同的异常。

我也试过这个:

var host = OperationContext.Current.Host;
host.Description.Endpoints[0].Behaviors.Add(new SilverlightFaultBehavior());

但是好像没有效果。永远不会调用端点行为。

那么是否可以向 IIS 托管的 WCF 服务添加端点行为?

最佳答案

只能在 ServiceHost 打开(开始托管服务)之前添加端点行为。所以它需要重置你的服务。对 IIS 中托管的服务的 ServiceHost 的访问是通过必须在 .svc 文件中定义的自定义 ServicHostFactory 进行的。所以你通常需要像自定义 ServiceHostFactory 这样的东西,它会从一些存储库加载行为并在 CreateServiceHost 方法中使用它们。只有在重新启动应用程序后才会应用行为。

关于wcf - 如何添加终结点行为以打开 IIS 托管的 WCF 服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5875251/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com