Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / WCF, Web Services, Remoting [игнор отключен] [закрыт для гостей] / WCF + SOAP + POST - не работает! / 6 сообщений из 6, страница 1 из 1
25.01.2010, 18:13
    #36429881
RegisteredUser
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
WCF + SOAP + POST - не работает!
есть задача: по SOAP через явный XML-запрос вытянуть данные из WCF-сервиса.
у WCF-сервиса (http://localhost/WCFCalc/SOAPCalc.svc) есть метод Add(X, Y), который возвращает сумму X+Y.
через WCFTestClient.exe есть нормальный доступ и всё работает.
теперь надо сделать все такое же через прогу.

вот код:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
        protected void Send_Request_SOAP(string Method, string Param1, string Param2)
        {

            strRequest = @"<s:Envelope xmlns:a=""http://www.w3.org/2005/08/addressing"" xmlns:s=""http://www.w3.org/2003/05/soap-envelope"">" +
                @"  <s:Body>" +
                @"    <{0}>" +
                @"      <x>{1}</x>" +
                @"      <y>{2}</y>" +
                @"    </{0}>" +
                @"  </s:Body>" +
                @"</s:Envelope>"; 
            

            
            strRequest = string.Format(strRequest, Method, Param1, Param2);
            txt_Request.Text = strRequest;

            UTF8Encoding encoding = new UTF8Encoding();
            byte[] data_request = encoding.GetBytes(strRequest);

            string strXMLresponse = "";

            HttpWebRequest myRequest = (HttpWebRequest)WebRequest.Create("http://localhost/WCFCalc/SOAPCalc.svc");
            myRequest.Method = "POST";
            myRequest.ContentType = "application/soap+xml; charset=utf-8";
            myRequest.ContentLength = data_request.Length;
            Stream newStream = myRequest.GetRequestStream();

            // Send the data.
            newStream.Write(data_request,  0 , data_request.Length);
            newStream.Close();

            StreamReader streamRead ;
            Stream streamResponse;
            HttpWebResponse myHttpWebResponse;

            try
            {
                myHttpWebResponse = (HttpWebResponse)myRequest.GetResponse();  // ВОТ тут ОШИБКА: The remote server returned an error: ( 500 ) Internal Server Error.

                streamResponse = myHttpWebResponse.GetResponseStream();
                streamRead = new StreamReader(streamResponse);
                Char[] readBuffer = new Char[ 256 ];
                // Read from buffer
                int count = streamRead.Read(readBuffer,  0 ,  256 );

                while (count >  0 )
                {
                    String resultData = new String(readBuffer,  0 , count);
                    strXMLresponse = strXMLresponse + resultData;
                    count = streamRead.Read(readBuffer,  0 ,  256 );
                }
                streamRead.Close();
                streamResponse.Close();

                myHttpWebResponse.Close();

                txt_Response.Text = txt_Response.Text +  strXMLresponse;
            }
            catch (Exception exp)
            {
                txt_Response.Text = txt_Response.Text + Environment.NewLine + "error: " + exp.Message;
            }

        }




(HttpWebResponse)myRequest.GetResponse(); возвращает ошибку: The remote server returned an error: (500) Internal Server Error.

помогите плиз добрым советом.
...
Рейтинг: 0 / 0
25.01.2010, 19:00
    #36429976
AlexeiK
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
WCF + SOAP + POST - не работает!
через браузер выполни запрос и пока через него не заработает, не возвращайся к своему коду.
...
Рейтинг: 0 / 0
25.01.2010, 19:06
    #36429986
RegisteredUser
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
WCF + SOAP + POST - не работает!
AlexeiKчерез браузер выполни запрос и пока через него не заработает, не возвращайся к своему коду.
это мне xml в адресну строку запихнуть что ли??
...
Рейтинг: 0 / 0
26.01.2010, 13:08
    #36431176
RegisteredUser
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
WCF + SOAP + POST - не работает!
позырил что ходит по сетке.

запрос:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
POST /WCFCalc/SOAPCalc.svc HTTP/ 1 . 1 
Content-Type: application/soap+xml;  charset=utf- 8 
Host: vlad
Content-Length:  195 
Expect:  100 -continue

<s:Envelope xmlns:a="http://www.w3.org/2005/08/addressing" xmlns:s="http://www.w3.org/2003/05/soap-envelope">  
<s:Body>    <Add>      <x> 41 </x>      <y> 52 . 34 </y>    </Add>  </s:Body>
</s:Envelope>

Ответ:

Код: plaintext
1.
2.
3.
4.
5.
6.
HTTP/ 1 . 1   500  System.ServiceModel.ServiceActivationException
Date: Tue,  26  Jan  2010   09 : 26 : 44  GMT
Server: Microsoft-IIS/ 6 . 0 
X-Powered-By: ASP.NET
X-AspNet-Version:  2 . 0 . 50727 
Cache-Control: private
Content-Length:  0 

как можно узнать больше о том что не нравится сервису?
...
Рейтинг: 0 / 0
26.01.2010, 13:15
    #36431201
bured
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
WCF + SOAP + POST - не работает!
RegisteredUser
как можно узнать больше о том что не нравится сервису?
программно - отлавливать и передавать FaultException с деталями, административно - включите трассировку.
...
Рейтинг: 0 / 0
26.01.2010, 14:37
    #36431495
AlexeiK
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
WCF + SOAP + POST - не работает!
RegisteredUser,

wcf debug fiddler
поищи по этому запросу в гугле.
...
Рейтинг: 0 / 0
Форумы / WCF, Web Services, Remoting [игнор отключен] [закрыт для гостей] / WCF + SOAP + POST - не работает! / 6 сообщений из 6, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]