问题标签 [servicebehavior]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c# - 如何在 WCF 服务的服务行为中获取请求消息的类型(如 request.GetType)
我正在编写一个自定义 ServiceBehavior,它希望我知道请求消息的类型,以推断消息是否用自定义属性装饰。
我的示例合同可能如下所示:
我试图通过使用来识别行为方面的自定义属性:
但是typeOfRequest总是作为{Name = "BufferedMessage" FullName = "System.ServiceModel.Channels.BufferedMessage"}
有没有办法可以通过使用请求来推断消息的类型?
注意:我直接引用了包含合同的程序集,并且服务不是通过 wsdl 引用的。
wcf - WCF:一个服务有两种行为(behaviorConfiguration)
我有一项服务有两种行为。一个用于节流,另一个用于元数据交换。如何在服务中启用两者?当我们第一次启用时,第二次被禁用,反之亦然。
我的行为名称是 MexBehaviour 和 ThrottlingBehaviour。服务适用于以下行之一,但不能同时适用于两者:
如何同时指定两者?
wcf - 当 WCF OperationInvoker 调用另一个 WCF 服务时获取 401
我们有一个名为的属性LoggingImplementationBehavior
,它导致 WCF 日志记录服务在它所附加的服务调用之前和之后被调用。
这在本地和共享开发服务器上都很好用。但是,在登台服务器上,当调用者调用 Logging 服务时会返回 401 错误。为确保问题不在日志记录服务中,我将所有代码注释掉,以便它什么也不做,但在调用存根时我仍然会收到此错误。
在 IIS 管理器中,在服务器级别和服务网站级别都启用了匿名身份验证(仅此而已)。Digest Authentication 在两个级别都被禁用,那么这些 401 错误的原因可能是什么?
我见过其他人对大数据有这个问题,但这里发送的数据非常小。
任何有关如何继续调试此问题的提示将不胜感激,因为我目前处于死胡同。
错误的确切文本是:
wcf - 有没有办法通过配置将参数传递给自定义服务行为
我在 IIS 中托管了多个 WCF 服务,我正在向这些服务应用相同的自定义服务行为。我正在寻找一种通过配置将多个参数传递给行为的方法,例如在行为扩展或行为元素中。
如果有帮助,我还将在 ApplyDispatchBehavior 中添加自定义消息检查器,因此我需要将参数传递给检查器:
c# - 将服务行为应用于服务参考
我在我的 Web 应用程序中添加了对远程服务器上的 .svc Web 服务的服务引用。当我从此 Web 服务调用方法时,出现以下错误。
由于内部错误,服务器无法处理请求。有关错误的更多信息,请在服务器上打开 IncludeExceptionDetailInFaults(来自 ServiceBehaviorAttribute 或来自配置行为)
第一个问题:必须在我的服务器或托管.svc服务的远程服务器上打开IncludeExceptionDetailinFaults?
第二个问题:如果必须打开 IncludeExceptionDetailinFaults,在我的服务器上如何正确配置 web.config 文件以应用我添加的服务参考的行为。这篇文章描述了将它应用到 web.config 中的服务的方法,但是在我的 web.config 中没有定义服务,因为我从解决方案资源管理器中添加了服务引用。(只有绑定和客户端是在 serviceModel 节点下自动定义的)另外需要注意的是,当我在 Visual Studio 调试中在笔记本电脑上本地运行应用程序时,我没有收到错误消息。但是当我将解决方案发布到我的服务器时,我得到了上述错误。
wcf - 将行为扩展添加到预编译的网站
我正在尝试将CORS 标头添加到 WCF 服务中,该服务是 VS 2012 中预编译网站项目的一部分。
错误
从配置文件
现在,MyWebSite.dll
显然在预编译站点中没有。那么,我该如何克服这个问题并使 BehaviorExtension 工作呢?
c# - WCF 添加服务时更新配置文件失败
我在默认服务行为中添加了一个服务行为扩展,用于记录未处理的异常,它按预期工作。
但是,当我尝试将新服务添加到项目中时,出现以下错误:
更新配置文件失败
无法加载为扩展“UnhandledExceptions”注册的类型“MyApp.WebServices.Behaviours.Extensions.UnhandledExceptionExtention, MyApp, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null”。Web.config 第 XX 行
为了解决这个问题;我注释掉服务行为中的扩展用法,添加服务并撤消配置更改。
尽管这是一个可行的解决方案,但我宁愿不必依赖我自己和其他开发人员记住看似不必要的过程。
有没有办法解决这个问题?
.net - 如何以编程方式为 IIS 托管的 WCF 服务设置 ServiceThrottlingBehavior
我试图弄清楚将这个物体推到哪里:
我在 web.config 中找到了有关如何配置它的信息,但对此我有点困惑。我们曾经在我们的 web.config 中有一些看起来像这样的东西:
如果我们仍然使用它,我将确切地知道如何通过 web.config 配置节流,但我们发现我们可以将所有这些端点从 web.config 中取出,并且一切仍然有效,并且由于我们没有这样做,因此维护较少不得不去更新不同版本和环境的地址了。
我还找到了有关如何在 ServiceHost 上以编程方式设置它的信息,但我没有以编程方式创建 ServiceHost。我让 IIS 来处理这个问题。
那么有没有一种编程方式可以让我在没有 web.config 并且不必自己创建 ServiceHost 的情况下设置节流?
编辑:或者有没有办法让我在 web.config 中做到这一点,而不必为<service />
我们的每一项服务创建一个条目?
c# - 如何测试 IncludeExceptionDetailInFaults
我可以检查是否设置了行为:
如何检查是否在 ServiceBehavior 属性中定义和设置了特定属性?例如 IncludeExceptionDetailInFaults:
c# - 奇怪的服务行为
为了给您一些背景知识,我一直在尝试修改我们的本地托管安排,以便现有的 WCF 服务托管在本地的 IIS 中,而不是当前的主机控制台应用程序。
我创建了一个新的 WCF 项目,它只包含一个 svc 和 web.config。
svc 在服务程序集中引用了一个服务工厂,而 web.config 处于复杂性的低端。这模仿了服务在我们的 dev/test/uat/pre-prod 环境中的部署方式。
该服务具有在调用 AddBindingParameters 期间设置证书验证器的服务行为 - 这比我在公司工作的时间更长。
问题出在本地,AddBindingParameters 被多次调用,但最终通道状态设置为“打开”,服务凭证对象设置为只读,蘑菇云。
我认为这可能是环境问题,但我已经搜索了 IIS 以寻找“设置为邪恶”标志,但没有运气。我尝试将服务(文件副本)部署到已知良好的服务器 - 不好,同样的问题。环境,我说。所以我尝试在本地复制一个已知的好服务(文件复制) - 不好。好吧,WTF。检查安装程序(该服务是使用 WiX 安装程序安装的)——它确实创建了虚拟目录,但没有什么特别突出的。
我知道我可以将授权逻辑移动到授权策略中,但我不愿意在不了解根本问题的情况下更改已经工作了这么长时间的东西。
在这一点上,除非我得到一些好主意,否则我已经准备好放弃了!