【问题标题】:Can you change the location/endpoint of a dynamic web reference at run-time in .NET?您可以在 .NET 中运行时更改动态 Web 引用的位置/端点吗?
【发布时间】:2010-02-11 16:11:51
【问题描述】:

以一种相当标准的方式,我在 Jira 中为我正在构建的扩展创建了一个对 SOAP 服务的 Web 引用(Jira 是一个针对不熟悉它的人的问题跟踪器)。 Visual Studio 会自动生成一个 .Settings 文件和一个包含 Web 服务 URL 的 app.config

由于我正在为我们正在构建的 ALM 产品开发扩展程序/插件,因此扩展程序的消费者将是最终决定此 Web 服务指向何处的人,因为它将与消费者的 Jira 实例集成。假设 Web 服务 URL 将被存储并从数据库中提取。

如何让自动生成的服务使用来自数据库而不是来自生成的app.config 的 URL?

注意:我们使用的是 v2.0 的框架,所以 WCF 不是一个选项。

【问题讨论】:

    标签: c# .net dynamic web-services jira


    【解决方案1】:

    即使在 2.0 网络服务中,您也应该能够将网络服务代理的“Url”属性更改为您想要的值。

    【讨论】:

    • 此“Url”属性位于何处?
    • .Net 3.5 似乎完全不同地处理这个问题。我曾经在旧的 .Net 2.0 项目中使用这种方法。有人知道如何用 C# 3.5 做到这一点吗?我假设我可以通过更改 Endpoint.Address 设置来使其工作,但是,这不起作用一个地址使用 SSL,而另一个地址不使用。如何重置端点?
    【解决方案2】:

    使用接受 uri 的客户端的构造函数。

    【讨论】:

    • 它似乎不在构造函数中,我不得不按照 Otávio 的建议使用 Url 属性
    • 你在构造函数中有它,但使用 url 属性更容易,正如 Otavio 建议的那样:HelloWorld.HelloWorldClient hello = new HelloWorld.HelloWorldClient("BasicHttpBinding_IHel loWorld", new EndpointAddress("@987654321 @));
    猜你喜欢
    • 2011-01-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-04-22
    相关资源
    最近更新 更多