Web Service помогите найти ошибку
От: fern_ Россия  
Дата: 07.11.06 13:50
Оценка:
Первый раз пишу веб-сервис и клиент к нему.
веб-сервис лежит на сервере. При попытке клиента к нему обратиться, выдает ошибку 500 Internal Server Error
если через браузер обращаться — все работает. В чем же дело??
вот код:
клиент

........................................
SendRequest("terminal="+terminalNumber.ToString(),ref outdata)
............................................


public static  bool SendRequest(string in_data,ref string out_data)
        {
            string request;
            try
            {
                request= "https://..../WebService1/Service1.asmx?op=GetXml";
                HttpWebRequest myHttpWebRequest = (HttpWebRequest)WebRequest.Create(request);
                myHttpWebRequest.Method = "POST";
                myHttpWebRequest.ContentType= "application/x-www-form-urlencoded";
                myHttpWebRequest.Timeout = 20000;
                           Stream reqStream = myHttpWebRequest.GetRequestStream();
                StreamWriter wr = new StreamWriter(reqStream);
                wr.Write(in_data);
                wr.Close();
                HttpWebResponse myHttpWebResponse = (HttpWebResponse)myHttpWebRequest.GetResponse(); 
                Stream receiveStream = myHttpWebResponse.GetResponseStream();
                Encoding encode = System.Text.Encoding.GetEncoding("utf-8");
                StreamReader readStream = new StreamReader( receiveStream, encode );
                string input= readStream.ReadToEnd();
                myHttpWebResponse.Close();
                readStream.Close();
                out_data= input;    
            }
            catch(Exception e)
            {
                Console.WriteLine(e.Message);
                return(false);
            }
            return(true);
        }


сервер
[WebMethod]
public DataSet GetXml(int terminal)
{
.......
}

Заранее спасибо!
Web Service помогите найти ошибку
От: Аноним  
Дата: 07.11.06 14:37
Оценка:
попробуйте в web.config сервиса прописать вот такую конструкцию
http://www.gotdotnet.ru/Forums/Web/215923.aspx
Дело в том, что по умолчанию разрещен доступ только для SOAP, а вы пытаетесь обратиться по методу POST, который надо разрешать ручками.


данное сообщение получено с www.gotdotnet.ru
ссылка на оригинальное сообщение
Web Service помогите найти ошибку
От: Аноним  
Дата: 07.11.06 15:03
Оценка:
fern_:

Первый раз пишу веб-сервис и клиент к нему.

.... request= "https://..../WebService1/Service1.asmx?op=GetXml";

Зачем же для первого раза такую страшилу использовать? Через прокси-класс гораздо удобнее работать.
--
Абыpвалг! — сказал Linux после pyсификации


данное сообщение получено с www.gotdotnet.ru
ссылка на оригинальное сообщение
Re: Web Service помогите найти ошибку
От: fern_ Россия  
Дата: 07.11.06 15:06
Оценка:
Здравствуйте, Nisus, Вы писали:

N>попробуйте в web.config сервиса прописать вот такую конструкцию

N>http://www.gotdotnet.ru/Forums/Web/215923.aspx
N>Дело в том, что по умолчанию разрещен доступ только для SOAP, а вы пытаетесь обратиться по методу POST, который надо разрешать ручками.

Все сделал, та же история....то есть ошибку 500 возвращает. По-моему там еще в клиенте дело..
Re: Web Service помогите найти ошибку
От: fern_ Россия  
Дата: 07.11.06 15:11
Оценка:
Здравствуйте, Dkm_S, Вы писали:

D_S>Зачем же для первого раза такую страшилу использовать? Через прокси-класс гораздо удобнее работать.


Тех задание такое..Надо так надо.
Re: Web Service помогите найти ошибку
От: fern_ Россия  
Дата: 08.11.06 07:09
Оценка:
Если в клиент добавить

myHttpWebRequest.ContentLength=request.Length;

тогда вот такая реакция от сервера:
The request was aborted: The request was canceled

В чем же дело???
Re: Web Service помогите найти ошибку
От: Аноним  
Дата: 08.11.06 07:51
Оценка:
Ага
а myHttpWebRequest.ContentType= "application/x-www-form-urlencoded";
это как?
Либо строка запроса, либо xml в теле.


данное сообщение получено с www.gotdotnet.ru
ссылка на оригинальное сообщение
Re[2]: Web Service помогите найти ошибку
От: fern_ Россия  
Дата: 08.11.06 08:04
Оценка:
Не, прошу прощения, имелось ввиду вот так ..длина содержимого.

myHttpWebRequest.ContentLength=in_data.Length;

Ну не отвечает сервер ничего! The operation has timed-out
Re: Web Service помогите найти ошибку
От: fern_ Россия  
Дата: 08.11.06 11:06
Оценка:
Все, получилось!!!
ошибка была здесь:

request= "https://..../WebService1/Service1.asmx?op=GetXml";

а надо было так:

request= "https://..../WebService1/Service1.asmx/GetXml";
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.