关于更改webservice URL问题

匿名用户_999 2011-12-08 02:56:23
情况是这样的,公司有个软件项目,之前调用的是一个服务器的webservice,现在新加了一个服务器,新服务器上的webservice和原来服务器上是一模一样的。就里面的数据不一样,现在想在软件上加一个下拉框选择服务器,如何能实现下拉框选择后,更改webservice上的URL。实例化webservice更改URL不起什么作用,因为项目上实例化的地方太多了。现在就想如何用IO的方式更改本地webservice的URL,或者有没有更好的解决办法,谢谢各位了!
...全文
320 17 打赏 收藏 转发到动态 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
匿名用户_999 2012-01-12
  • 打赏
  • 举报
回复
唉,还是没满意答案啊。
匿名用户_999 2011-12-19
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 fangxinggood 的回复:]
很简单哪,你把本地代理的 Serivce 类修改一下... 虽然这个类是自动生成的。

public partial class Service1SoapClient : System.ServiceModel.ClientBase<WebServiceClientTest.ServiceReference1.Service1Soap>, WebServiceClientTest.Servi……
[/Quote]

前辈,求具体的实现方法。谢谢了,是在webservice的代码上这样写,还是在软件本地这样写啊?麻烦前辈了。
匿名用户_999 2011-12-12
  • 打赏
  • 举报
回复
[Quote=引用 14 楼 chen_ya_ping 的回复:]
实例化就是webservice.service service=new webservice.service();这样写的。
那你可以按照你选择的去实例化啊:
比如选择了A:
实例化就是webservice.service service=new webservice.service();这样写的。
选在了B
实例化就是webservice.service1 service=new we……
[/Quote]

你好,我就是不想去重新去更改实例化的地方,就想问有没有更简单的解决办法直接更改webservice的地址,下次实例化就是用的更改之后的地址
chen_ya_ping 2011-12-11
  • 打赏
  • 举报
回复
实例化就是webservice.service service=new webservice.service();这样写的。
那你可以按照你选择的去实例化啊:
比如选择了A:
实例化就是webservice.service service=new webservice.service();这样写的。
选在了B
实例化就是webservice.service1 service=new webservice.service1();这样写的。
匿名用户_999 2011-12-11
  • 打赏
  • 举报
回复
[Quote=引用 12 楼 sandy945 的回复:]
config 的更改想即时的体现的话,你需要用订阅的模式

订阅当文件更改时执行变量更改操作

用FileSystemWatcher
[/Quote]

你好,具体应该如何实现呢?
阿非 2011-12-10
  • 打赏
  • 举报
回复
config 的更改想即时的体现的话,你需要用订阅的模式

订阅当文件更改时执行变量更改操作

用FileSystemWatcher
机器人 2011-12-08
  • 打赏
  • 举报
回复
很简单哪,你把本地代理的 Serivce 类修改一下... 虽然这个类是自动生成的。

public partial class Service1SoapClient : System.ServiceModel.ClientBase<WebServiceClientTest.ServiceReference1.Service1Soap>, WebServiceClientTest.ServiceReference1.Service1Soap {

public Service1SoapClient() {
this.Endpoint.Address = new System.ServiceModel.EndpointAddress("http://xxxx");
}

红色部分可以随便从哪个全局变量里取得了。
匿名用户_999 2011-12-08
  • 打赏
  • 举报
回复
麻烦大侠们帮忙解决解决~感激不尽了。
匿名用户_999 2011-12-08
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 fangxinggood 的回复:]
你现在实例化 WebService 的代码是直接写死的吗?

比如 var client = new Soap1Client("http://xxx.xxx.xxx.xxx/service1"); ???
[/Quote]

实例化就是webservice.service service=new webservice.service();这样写的。
机器人 2011-12-08
  • 打赏
  • 举报
回复
你现在实例化 WebService 的代码是直接写死的吗?

比如 var client = new Soap1Client("http://xxx.xxx.xxx.xxx/service1"); ???
匿名用户_999 2011-12-08
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 fangxinggood 的回复:]
我赶脚可以加个拦截器来修改 SoapHeader 的Action 地址。而这个拦截器可以接受外部参数
[/Quote]

什么意思?
匿名用户_999 2011-12-08
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 chendong152 的回复:]
在实例化WebService对应的类的时候,url使用变量,不要直接使用某个地址。
能在下拉框中修改这个变量,修改后访问的就是新的Url了
[/Quote]

URL是使用的变量,我的意思是,只需要一个地方改webservice的URL,然后其他地方实例化的时候,使用的是更改后的URL。而不需要再重新设置URL了,因为程序中实例化webservice的地方太多了。
机器人 2011-12-08
  • 打赏
  • 举报
回复
我赶脚可以加个拦截器来修改 SoapHeader 的Action 地址。而这个拦截器可以接受外部参数
匿名用户_999 2011-12-08
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 findcaiyzh 的回复:]
IO的方式更改本地webservice的URL

只的是修改config中的url吗?
这种方法估计也行不通,因为如果是winform或者windows serivce,修改config后要重启启动才能生效。

如果是asp.net修改web.config会造成asp.net程序的重启。
[/Quote]

谢谢,不是asp.net,是winform程序,有没有比较好的解决办法呢?
chendong152 2011-12-08
  • 打赏
  • 举报
回复
在实例化WebService对应的类的时候,url使用变量,不要直接使用某个地址。
能在下拉框中修改这个变量,修改后访问的就是新的Url了
宝_爸 2011-12-08
  • 打赏
  • 举报
回复
IO的方式更改本地webservice的URL

只的是修改config中的url吗?
这种方法估计也行不通,因为如果是winform或者windows serivce,修改config后要重启启动才能生效。

如果是asp.net修改web.config会造成asp.net程序的重启。
宝_爸 2011-12-08
  • 打赏
  • 举报
回复
代理类,应该有URL的属性吧,给它赋值就可以了。

62,074

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧