首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > Web Service >

[]把WebService放到服务器上运行之后,就取不到数据了,方法没用了

2013-08-06 
[求助]把WebService放到服务器上运行之后,就取不到数据了,方法没用了公司要做一个WebService,我当然也不懂

[求助]把WebService放到服务器上运行之后,就取不到数据了,方法没用了
公司要做一个WebService,我当然也不懂,

首先根据教程建立了服务器端和客户端

然后用.net的哪个查找服务引用关联上

然后开始做项目,发现我要传很多数据,但是如果webservice的一个方法返回的字符串超过8000多个字符的时候,或者其他格式数据太大之后,就去不了数据,服务器没问题,客户端会突然消失了

我想会不会是因为有限制,我没找到解决办法,只能试试改成post提交,结果可以了,再多的数据都可以传,只要别超时,但是我的post不是设置了.net的web服务引用里头哪些对象的属性,而是网上找了一段代码。

            byte[] dataArray = Encoding.UTF8.GetBytes(postData);
            //创建请求
            HttpWebRequest request = (HttpWebRequest)HttpWebRequest.Create(ServerPage);
            request.Method = "POST";
            request.ContentLength = dataArray.Length;
            request.ContentType = "application/x-www-form-urlencoded";
            //创建输入流
            Stream dataStream = null;
            try
            {
                dataStream = request.GetRequestStream();
            }
            catch (Exception)
            {
                return null;//连接服务器失败
            }

            //发送请求
            dataStream.Write(dataArray, 0, dataArray.Length);
            dataStream.Close();
            //读取返回消息
            string res = string.Empty;
            try
            {
                HttpWebResponse response = (HttpWebResponse)request.GetResponse();
                StreamReader reader = new StreamReader(response.GetResponseStream(), Encoding.UTF8);


                res = reader.ReadToEnd();
                res = res.Replace("&lt;", "<").Replace("&gt;", ">");
                reader.Close();
            }
            catch (Exception ex)
            {
                return null;//连接服务器失败
            }




就是这段代码,就是把request.Method = "POST";设置一下,就变成post提交了,然后其他还是正常的提交和响应。

用这段代码我在本地测试,就是服务器端客户端都在我的电脑上测试,没有问题,数据都可以取出来

但是我把webservice放到服务器上之后,这样取数据就没用了,
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
                StreamReader reader = new StreamReader(response.GetResponseStream(), Encoding.UTF8);
                res = reader.ReadToEnd();
这里取到的数据永远都是null,我想会不会语句有问题,报错了,我给服务器的代码让他直接返回一个字符串,但是还是null。我想求解 一下是什么原因,应该是这个post提交有问题把?感觉根本就没调用哪个方法就返回null了。我该怎么办呀?

这个webservice主要功能有登录,传输数据,和传文件。文件都是不大的,一般不超过1K,我都是服务器读取文件之后,直接返回字符串,只要能用就可以了。
因为登录成功之后只用返回一个帐号,所以登录不是用上面的post提交的代码,用。net的web服务里头内置的方法。

Mmywebservice.Service1SoapClient client = new mywebservice.Service1SoapClient();
object userServer = client.LoginCheck(userName, password);

把webservice放到服务器上之后,这个方法是正常的,其他方法都是post,其他所有方法都去不了数据,我该怎么办呀?求助各位大侠。
[解决办法]
config已经有如下?
<webServices>
  <protocols>
     <add name="HttpPost"/>
   </protocols>
</webServices>

热点排行