zoukankan      html  css  js  c++  java
  • 【Web学习日记】——C#引用WebService,从配置文件改变引用地址

    开发环境:Win7 32位,开发工具:VS2013,.Net:4.0

    初用WebService,很多地方都搞不清楚怎么回事,但稍作研究之后,也就用上了,根本就没有考虑后续事情。

    但是,随着项目的进行,到了该考虑部署的时候,问题来了:WebService需要部署到多个服务器,且每个服务器互相独立,IP地址各不相同,而在添加引用的时候,地址是写死的,怎么办呢?

    网上找了一些例子 ,有在ServiceSoapClient初始化时赋值地址的,也有动态创建引用的。

    先说ServiceSoapClient初始化时赋值地址,这个看起来最简单,只要一句代码就可以:

    this.service = new RADIServiceReference.ServiceSoapClient("ServiceSoap", "http://192.168.1.125/comeon.asmx");

    前提是,要右键添加的引用,然后属性,把获取URL设为自动(这是从网上看的),可是,在我添加的引用里面,右键属性,根本就没有相关的设置,不知是VS的问题还是.net版本的问题,还是我打开的姿势不对,于是就放弃从属性下手,直接改配置文件里面的ip,但仍然无效,提示的错误是原来的地址(之前使用过其他ip)……总之是无从下手。

    然后说第二种方法,动态创建WebService引用:

    这种方法网上很多人都写了Demo,我就不再重复了。我要说的是,我最开始怀着“先不考虑性能,只要能实现功能就行的心态”去临摹这些Demo,到后来发现,用起来实在太费劲了,想调用自己的service里面的方法实在太复杂了,o(╯□╰)o,我很懒……

    之后继续网上找解决方案, 不经意间看到了右键ServiceSoapClient然后“转到定义”,解说了一番上面第一种方法。出于好奇,我也在自己的工程里面转到定义进入reference.cs看了一眼,这也算是机缘吧,终于发现了问题所在,service.cs文件里面的namespace有问题,之前我为了区分方便,直接用的本机ip加端口号(ip是写死的)。接下来把发布的网站里面的service.cs里面的namespace改为扑通的字符串,reference.cs里面也对应替换,然后再重试第一种方法——OK!至于为什么会受到namespace的影响,我不知道!——不求甚解的我……

    暂时先记录这么多,继续干活了……

    一点一滴,记录
  • 相关阅读:
    【QT】对话框打开图像并用QPixmap显示
    【QT】打开文件对话框,选择路径下文件
    狄拉克下采样
    Linux 安装JDK(jdk-8u121-linux-x64.tar.gz)
    Linux 命令安装bin文件
    Python3 tesseract加载chi_sim异常停止工作
    Python3 pip出现Fatal error in launcher: Unable to create process using '"'
    Python3 判断文件和文件夹是否存在、创建文件夹
    Python3 itchat实现微信定时发送群消息
    Python3 实现(wxpy)用微信自动定时给朋友定时推广
  • 原文地址:https://www.cnblogs.com/zuixieyang/p/3998673.html
Copyright © 2011-2022 走看看