当前位置: 代码迷 >> 综合 >> C# webservices 天气预报 VS2015版本
  详细解决方案

C# webservices 天气预报 VS2015版本

热度:51   发布时间:2023-12-22 09:27:42.0


用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) +153System.Runtime.Remoting.Proxies.RealProxy.PrivateInvoke(MessageData& msgData, Int32 type) +336ServiceReference1.WeatherWebServiceSoap.getWeatherbyCityName(String theCityName) +0ServiceReference1.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:10System.Web.Util.CalliEventHandlerDelegateProxy.Callback(Object sender, EventArgs e) +51System.Web.UI.Control.OnLoad(EventArgs e) +95System.Web.UI.Control.LoadRecursive() +59System.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) +463System.ServiceModel.ChannelFactory.InitializeEndpoint(String configurationName, EndpointAddress address) +89System.ServiceModel.ChannelFactory`1..ctor(String endpointConfigurationName, EndpointAddress remoteAddress) +129System.ServiceModel.ConfigurationEndpointTrait`1.CreateSimplexFactory() +12838651System.ServiceModel.ConfigurationEndpointTrait`1.CreateChannelFactory() +19System.ServiceModel.ClientBase`1.CreateChannelFactoryRef(EndpointTrait`1 endpointTrait) +18System.ServiceModel.ClientBase`1.InitializeChannelFactoryRef() +357System.ServiceModel.ClientBase`1..ctor() +295ServiceReference1.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:7System.Web.Util.CalliEventHandlerDelegateProxy.Callback(Object sender, EventArgs e) +51System.Web.UI.Control.OnLoad(EventArgs e) +95System.Web.UI.Control.LoadRecursive() +59System.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



  相关解决方案