【问题标题】:Getting an app.config key of console app from webservice referred by the console app从控制台应用程序引用的 Web 服务获取控制台应用程序的 app.config 键
【发布时间】:2011-02-25 10:51:07
【问题描述】:
我有一个控制台应用程序(例如 CA),它调用许多 Web 服务(例如 WS1、WS2、WS3)。所有这些 Web 服务都将具有相同的结构(意思是:公开相同的 Web 方法,但功能会在 WS1、WS2、WS3 之间发生变化)。
使用单个代理从 CA 访问 Web 服务。 (意思是:所有Webservice的接口/webmethods结构都是一样的)。
问题是:是否可以在 WS3 内部访问 CA 的 app.config 中的特定键,但同时我不应该更改 webmethod 的结构。
【问题讨论】:
标签:
c#
web-services
.net-2.0
【解决方案1】:
如果我理解正确,CA 正在调用 Web 服务。所以网络服务实际上对正在调用的 CA 一无所知。
因此您无法从 WS 访问任何未作为参数发送的数据。
但无论如何应该没有必要。
【解决方案2】:
服务无法访问有关客户端应用程序的任何内容。客户端是发起通信的一方,而客户端是决定向服务发送什么信息的一方。相反,当服务向客户端发送数据时,服务处于完全控制之下。客户端无法让服务向其发送它不想发送的信息。
所以如果你愿意的话,这是一种合作交流。
所以有几种方法可以实现最终结果:
- 要么更改方法签名
这样的参数之一
您正在寻找的“钥匙”和
客户可以发送此信息
像任何服务器一样
它发送到的其他参数
服务器。
- 如果您有选择/能力,您可以让客户端将此额外信息填充到 Http 标头中,并让服务器从它接收的 http 标头中提取此信息。当然,如果您使用的是 SOAP,您可能会觉得这有点“尴尬”