问题标签 [wcf-behaviour]

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.

0 投票
1 回答
370 浏览

c# - 当自托管主机应用程序甚至无法使用它时,在 WCF 服务本身中定义服务端点有什么意义

我对 WCF 完全陌生,我仍在学习基础知识。到目前为止我学到的是我可以创建一个服务并在服务的配置文件中配置它的端点和行为。当我通过 Visual Studio 运行我的服务时,将创建一个默认应用程序,该服务将成功托管在 IIS 中,一切正常。

现在,当我为我的服务创建一个主机应用程序时,我发现我应该在代码中再次为我的服务添加服务端点(和行为),如下所示:

或者我可以在主机应用程序的配置文件中进行

所以这是我的问题:

  1. 当它在主机应用程序中甚至没有用时,在服务自己的配置文件中定义端点有什么意义?

  2. 还是该服务的配置文件仅适用于 IIS 和托管主机?

  3. 最后有没有办法在宿主应用程序中拥有服务自己的配置(不再在宿主应用程序中定义端点和行为)或者提到的两个配置完全不同?

编辑

我的最终问题是,如何在主机应用程序中使用服务配置文件中定义的配置?(不使用主机应用程序自己的配置文件或创建额外的代码来定义新的端点和行为)

0 投票
1 回答
105 浏览

c# - WCF netTCPBinding 的不可预测行为

我正在实现 WCF netTCPBinding 并在运行与数据库相关的任务时遇到问题。例外是“System.Net.Sockets.SocketException:'现有连接被远程主机强制关闭'在 net tcp 绑定中”。但是,行为是不可预测的,有时它不会给出异常并且运行平稳,有时它会给出异常。

我添加了服务限制,为读取器配额和缓冲区大小分配了最大值,但对我没有任何作用。但是,我无法将最大连接值从 10 增加到其他值,因为它给出了异常。我尝试了一切,但没有任何效果。

网络配置

应用程序配置

请帮助我从星期一就被困在这里。

注 1: 该应用程序在 Visual Studio 调试模式下运行良好。但是,问题发生在发布模式或我在客户端计算机上安装应用程序时。

0 投票
2 回答
143 浏览

c# - 将 WCF 服务访问限制为仅使用控制台应用程序托管的 localhost

我对 WCF 很陌生。我有一个使用控制台应用程序托管的 WCF 服务,但是需要从托管在同一台机器上的 C# web 服务调用 WCF。那么如何限制端点访问环回ip,即127.0.0.1

现在我可以访问托管在不同机器上的 WCF 服务端点(比如 10.XXX)。例如,我可以输入http://10.XXX/api/v1/getStatus并获得响应。这个网址应该被限制。我的要求是只有http://localhost/api/v1/getStatus应该能够从托管的 WCF 服务中获取响应。

0 投票
0 回答
48 浏览

biztalk - BizTalk 一种方式发送端口自定义行为 AfterReceiveReply 未触发

在 BizTalk 中,我只有消息传递的单向集成。

从源接收消息并在配置了 WCF-WebHTTP 适配器的单向发送端口中发送到 Restful 服务。不涉及编排。

在发送端口中,我有一个自定义行为,我在将消息发送到 Rest 服务之前准备好消息。此自定义行为是 IClientMessageInspector 接口的实现,其中 BeforeSendRequest 我在将消息发送到 Rest 服务之前准备消息。消息按预期传递。

有时由于数据中的错误,Restful 服务返回一个 HTTP 400 错误,我试图在我的仅消息传递配置中捕获该错误,特别是在行为的 AfterReceiveReply 部分中。但是当 Restful 服务返回 HTTP 400 时,AfterReceiveReply 方法没有被触发。(我附加了一个调试器并且也有跟踪行)我相信如果服务返回正确的响应但不是 HTTP 400(未测试非 http/400状态尚未)。

我在其他论坛看到有人问过类似的问题,不知道是什么解决方案。我错过了什么吗?