C# webservices 天气预报 VS2015版本


用VS2015 版本调用天气预报 getWeatherbyCityName 方法报错. getSupportProvince方法却能成功

 //string[] item1 = weatherC.getSupportProvince();
//string[] items = weatherC.getWeatherbyCityName("温州");


报错

“/”应用程序中的服务器错误。

服务器无法处理请求。 ---> 未将对象引用设置到对象的实例。 
  说明: 执行当前 Web 请求期间,出现未经处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。 

 异常详细信息: System.ServiceModel.FaultException: 服务器无法处理请求。 ---> 未将对象引用设置到对象的实例。

源错误: 



行 105:        
行 106:        public string[] getWeatherbyCityName(string theCityName) {
行 107:            return base.Channel.getWeatherbyCityName(theCityName);
行 108:        }
行 109:        
  

源文件:  c:\Windows\Microsoft.NET\Framework\v4.0.30319\Temporary ASP.NET Files\vs\c3d49eed\d9a3e5a0\App_WebReferences.xtj-j4ei.0.cs    行:  107 

堆栈跟踪: 



[FaultException: 服务器无法处理请求。 ---> 未将对象引用设置到对象的实例。]
   System.Runtime.Remoting.Proxies.RealProxy.HandleReturnMessage(IMessage reqMsg, IMessage retMsg) +153
   System.Runtime.Remoting.Proxies.RealProxy.PrivateInvoke(MessageData& msgData, Int32 type) +336
   ServiceReference1.WeatherWebServiceSoap.getWeatherbyCityName(String theCityName) +0
   ServiceReference1.WeatherWebServiceSoapClient.getWeatherbyCityName(String theCityName) in c:\Windows\Microsoft.NET\Framework\v4.0.30319\Temporary ASP.NET Files\vs\c3d49eed\d9a3e5a0\App_WebReferences.xtj-j4ei.0.cs:107
   _Default.Page_Load(Object sender, EventArgs e) in d:\Mwork\2016-11-04 Test\Default.aspx.cs:10
   System.Web.Util.CalliEventHandlerDelegateProxy.Callback(Object sender, EventArgs e) +51
   System.Web.UI.Control.OnLoad(EventArgs e) +95
   System.Web.UI.Control.LoadRecursive() +59
   System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +678

  


版本信息: Microsoft .NET Framework 版本:4.0.30319; ASP.NET 版本:4.6.1055.0 


解决方案:

//vs2015 把 [添加web引用] 的选项 放到 [添加服务引用]选项里面了

步骤

//[添加]-[服务引用]-[高级]-[添加Web 引用]-输入webservices地址[例如:http://www.webxml.com.cn/WebServices/WeatherWebService.asmx?op=getWeatherbyCityName]



报错

无法加载协定为“ServiceReference1.WeatherWebServiceSoap”的终结点配置部分,因为找到了该协定的多个终结点配置。请按名称指示首选的终结点配置部分。 
  说明: 执行当前 Web 请求期间,出现未经处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。 

 异常详细信息: System.InvalidOperationException: 无法加载协定为“ServiceReference1.WeatherWebServiceSoap”的终结点配置部分,因为找到了该协定的多个终结点配置。请按名称指示首选的终结点配置部分。

源错误: 



行 61:     public partial class WeatherWebServiceSoapClient : System.ServiceModel.ClientBase<ServiceReference1.WeatherWebServiceSoap>, ServiceReference1.WeatherWebServiceSoap {
行 62:         
行 63:         public WeatherWebServiceSoapClient() {
行 64:         }
行 65:         
  

源文件:  c:\Windows\Microsoft.NET\Framework\v4.0.30319\Temporary ASP.NET Files\vs\c3d49eed\d9a3e5a0\App_WebReferences.xtj-j4ei.0.cs    行:  63 

堆栈跟踪: 



[InvalidOperationException: 无法加载协定为“ServiceReference1.WeatherWebServiceSoap”的终结点配置部分,因为找到了该协定的多个终结点配置。请按名称指示首选的终结点配置部分。]
   System.ServiceModel.Description.ConfigLoader.LookupChannel(ContextInformation configurationContext, String configurationName, ContractDescription contract, EndpointAddress address, Boolean wildcard, Boolean useChannelElementKind, ServiceEndpoint& serviceEndpoint) +463
   System.ServiceModel.ChannelFactory.InitializeEndpoint(String configurationName, EndpointAddress address) +89
   System.ServiceModel.ChannelFactory`1..ctor(String endpointConfigurationName, EndpointAddress remoteAddress) +129
   System.ServiceModel.ConfigurationEndpointTrait`1.CreateSimplexFactory() +12838651
   System.ServiceModel.ConfigurationEndpointTrait`1.CreateChannelFactory() +19
   System.ServiceModel.ClientBase`1.CreateChannelFactoryRef(EndpointTrait`1 endpointTrait) +18
   System.ServiceModel.ClientBase`1.InitializeChannelFactoryRef() +357
   System.ServiceModel.ClientBase`1..ctor() +295
   ServiceReference1.WeatherWebServiceSoapClient..ctor() in c:\Windows\Microsoft.NET\Framework\v4.0.30319\Temporary ASP.NET Files\vs\c3d49eed\d9a3e5a0\App_WebReferences.xtj-j4ei.0.cs:63
   _Default.Page_Load(Object sender, EventArgs e) in d:\Mwork\2016-11-04 Test\Default.aspx.cs:7
   System.Web.Util.CalliEventHandlerDelegateProxy.Callback(Object sender, EventArgs e) +51
   System.Web.UI.Control.OnLoad(EventArgs e) +95
   System.Web.UI.Control.LoadRecursive() +59
   System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +678

 

解决方案:

添加服务引用后,如果“更新”服务引用,或“删除”该服务引用后再次加入后,在运行时会出现此错误。这是因为在“更新/删除”服务引用时,app.config文件并不会自动修改,在“更新”或再次“加入”后,会生成两个同样的“endpoint”,需要手工删除掉原有的才能正常运行。



源代码:http://download.csdn.net/detail/sat472291519/9672724

源代码步骤:http://download.csdn.net/download/sat472291519/9672753


参考文献:

[1]http://bbs.csdn.net/topics/390968500

[2]http://ask.csdn.net/questions/161302

[3]http://blog.csdn.net/ltylove2007/article/details/6128333



评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值