原文:getWeatherbyCityName(city),服务器无法处理请求。 ---> 未将对象引用设置到对象的实例。

解决方法:不要直接使用 “服务引用” , 添加为 “Web 引用”

最近用C#在winform中做一个天气预报的小程序,在网上搜了很多资料,包括现成的程序,如http://blog.csdn.net/qishuangquan/article/details/6039287,但运行到getWeatherbyCityName(city),都会出错,提示服务器无法处理请求。 ---> 未将对象引用设置到对象的实例。在网上搜索该问题的原因,也没找到答案,怀疑.NET Framework版本的问题,换了3.0、3.5、4.0都一样,当然2.0是没有Service Reference的,但有Web Reference,在Web Reference上添加webservice地址,修改weathertest.Weather.WeatherWebServiceSoapClient w = new weathertest.Weather.WeatherWebServiceSoapClient("WeatherWebServiceSoap");为weathertest.Weather.WeatherWebService webc = new weathertest.Weather.WeatherWebService();调试居然成功了,后来想.NET Framework4.0中有没有Web Reference,在网上搜了下找到了,原来Web Reference需要这样设置才出现:

⑴在需要调用WebService的项目上,点击鼠标右键,选择添加Service Reference,进入'Add Service Reference‘界面

⑵点击'Advanced'按钮,进入'Service Reference Settings'界面

⑶点击'Add Web Reference'按钮,进入'Add Web Reference'界面

①在'URL'文本框中,填写需要引用的WebService的地址(例如:http://www.webxml.com.cn/WebServices/WeatherWebService.asmx

②点击右边的绿色方框按钮,程序会自动前往给定的地址查找WebService服务

③在'Web Reference Name'文本框中,自定义此次添加的WebService的名称(例如:Weather)

④点击'Add  Reference'按钮,程序自动将找的WebService添加的当前的项目中,并自动放在Web References文件夹中.

自己写了个程序,测试成功,主要代码如下:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.ServiceModel;
using System.Runtime.InteropServices;

namespace weather2
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
        private void button1_Click(object sender, EventArgs e)
        {
            try
            {
                weather2.Weather.WeatherWebService webc = new weather2.Weather.WeatherWebService();
                string[] s = new string[23];//声明一个string数组存放其返回的结果
                string city = this.textBox1.Text.Trim();//获得文本框1的内容
                s = webc.getWeatherbyCityName(city);
                MessageBox.Show("西安气象:" + "\r\n" +"天气:" +s[6] + "\r\n" + "温度:" + s[5]);
            }
            catch (Exception e1)
            {
                MessageBox.Show(e1.ToString());
            }
        }
    }
}

测试图见下:

回到”服务器无法处理请求。 ---> 未将对象引用设置到对象的实例“这个问题,估计是VS版本的问题,因为网上看人家用的是VS2008,但我用的是VS2010,不管怎么样,这个问题还是给了个交代,可以安照上面的方法访问天气WebService。

版权声明:本文为博主原创文章,未经博主允许不得转载。

解决:getWeatherbyCityName(city),服务器无法处理请求。 ---> 未将对象引用设置到对象的实例。的更多相关文章

  1. 服务器无法处理请求。 ---> 未将对象引用设置到对象的实例

    服务器无法处理请求. ---> 未将对象引用设置到对象的实例. 简短说下我遇到的问题.webservice部署到服务器上后,访问方法报上面的错误,最终原因为改方法需要操作文件夹,加上了相应的权限 ...

  2. 解决使用DevExpress开发错误:未将对象引用设置到对象的实例

    在使用DevExpress是总是会出现一些状况.这次同事在他的机器上调试完成的代码发过来,却出现"未将对象引用设置到对象的实例"的错误,提示是Resources.resx的问题.另 ...

  3. 2014-08-26 解决HttpContext.Current.Session在ashx文件中出现“未将对象引用设置到对象的实例”的问题

    今天是在吾索实习的第35天. 最近在使用HttpContext.Current.Session来获取Session["..."]的值时,常常会弹出错误——“未将对象引用设置到对象的 ...

  4. C#一般处理程序设置和读取session(session报错“未将对象引用设置到对象的实例”解决)

    登陆模块时,用到了session和cookie.在一般处理程序中处理session,一直报错.最后找到问题原因是需要调用 irequiressessionstate接口. 在ashx文件中,设置ses ...

  5. Spring.Net 未将对象引用设置到对象的实例

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

  6. 报警提示 System.NullReferenceException:“未将对象引用设置到对象的实例。

    System.NullReferenceException:“未将对象引用设置到对象的实例.是就因为Session在记录到服务器时,没有添加  IRequiresSessionState 所以运行时回 ...

  7. SQL Sever无法打开链接对话框,未将对象引用设置到对象的实例。(AppIDPackage)

    前几天刚做完系统,先装的是SQL Sever2008,装完后还试了一下,OK~没问题,然后就继续装VS2012等一些软件.搞到很晚没有继续试试就睡了,第二天运行SSMS出问题了..(如图 1.0 所示 ...

  8. WPF中未将对象引用设置到对象的实例

    前几天,我开始了WPF的基础学习,一上来我就遇到了一个令我头痛的问题,按照书上的例子我写了一段属于自己的代码,一个简单的色调器.满心期待的编译运行,就出现了未将对象引用设置到对象的实例.我在网上查阅了 ...

  9. IIS报错 未将对象引用设置到对象的实例。

    在vs中运行正常的项目 ,发布到IIS总是提示 未将对象引用设置到对象的实例. 运行静态页面 html正常,只是打开.aspx页面的时候报错,在确保了数据库,配置,权限均正常的情况下. 错误原因:先安 ...

随机推荐

  1. hdu Hat's Fibonacci

    import java.math.BigInteger; import java.util.*; public class Main { public static void main(String ...

  2. QTabWidget and QTabBar.的文字的颜色设置,三种方法

    see the code after subclassingTabWidget::TabWidget(QWidget *parent): QTabWidget(parent),mousePressFl ...

  3. python list列表 方法总结

    深入链表(most on lists) The list data type has some more methods. Here are all of the methods of list ob ...

  4. mysql 只给更新表的某个字段的授权

    mysql> create view v_Procuct as select sn,name from Product; Query OK, 0 rows affected (0.01 sec) ...

  5. sendto() 向广播地址发包返回errno 13, Permission denied错误

    http://blog.csdn.net/guanghua2_0beta/article/details/52483916 sendto() 向广播地址发包返回errno 13, Permission ...

  6. PHP MySQL Update 之 Update

    更新数据库中的数据 UPDATE 语句用于在数据库表中修改数据. 语法 UPDATE table_name SET column_name = new_value WHERE column_name ...

  7. Mac 下纯lua(三)

    文件处理 直接使用io调用 io.close();文件流关闭 io.flush():如果文件流以bufferd缓存模式处理,输入不会立即存入文件,需要调用本函数 io.input(file):输入 i ...

  8. 记录一个原因不明的段错误(libxml2 proc activemq的三角恋)

    又碰到了令人头疼的段错误,但是这次,虽然最终找到了出自何处,但是还是不明白究竟是为何. 最后将程序简化,贴上来,希望高人能指点一下. memt.pc: #include <libxml/pars ...

  9. telnet如何操作Memcached缓存系统?

    4.(1)telnet操作Memcached 许多语言都实现了连接memcached的客户端,其中以Perl.PHP为主.仅仅memcached网站上列出的语言就有:• Perl • PHP • Py ...

  10. linux 在批处理中,完整路径有空格的处理方式(加引號)

    cp -f E:/XML_EDITOR/xmleditor25/xmleditor/Editor_UIOuterCtrl/TraceViewDlg.cpp E:/XML_EDITOR/'XMLEdit ...