如何更改存储在类库中的Web服务的URL?
问题描述:
我有一个类库有一个Web服务的引用,我将这个类库包含在我的web.config中。如何更改存储在类库中的Web服务的URL?
现在我想能够动态更改Web服务的URL(就像您通常在web.config中执行的操作一样)。我怎样才能做到这一点?我试图把设置放入web.config,但改变它没有任何作用。
<applicationSettings>
<MyClassLibraryAppConfig.WCFServices.Properties.Settings>
<setting name="WebServiceKey"
serializeAs="String">
<value>http://localhost/badaddress.asmx</value>
</setting>
</MyClassLibraryAppConfig.WCFServices.Properties.Settings>
</applicationSettings>
<applicationSettings>
<MyApp.Properties.Settings>
<setting name="WebServiceKey"
serializeAs="String">
<value>http://localhost/goodaddress.asmx</value>
</setting>
</MyApp.Properties.Settings>
</applicationSettings>
答
将Web服务URL移动到主机应用程序的web.config绝对是大多数情况下的方式。你提到改变web.config文件中的值没有任何作用,但我会仔细检查一下。除非你的url是硬编码的,否则这是主机进程读取它的位置。
答
如果您使用的是Web引用,请参阅Ways to Customize your ASMX Client Proxy。如果您使用WCF,则可以使用包含EndpointAddress的代理类构造函数的重载。
该网址设置在类库的app.config中...我如何防止它被硬编码? – zachary 2011-12-22 16:47:06
只要您在web.config中具有相同键的条目,那么app.config的值将被忽略。只需将它从类库app.config复制/粘贴到主机web.config即可。 – 2011-12-22 17:13:25
我确实拥有相同的密钥。我会在问题中发布更新的配置以向您展示。也许我错过了一些东西。 – zachary 2011-12-22 17:32:43