powered by simpleCommunicator - 2.0.41     © 2025 Programmizd 02
Форумы / WCF, Web Services, Remoting [игнор отключен] [закрыт для гостей] / "удаленный" вызов вебсервиса
8 сообщений из 8, страница 1 из 1
"удаленный" вызов вебсервиса
    #37709148
max44
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Прошу ногами не пинать, это мои первые шаги в програмирование webservice и .net

вопрос в следующем

есть веб сервис
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
<%@ WebService Language="C#" Class="Example1" %>
 
using System.Web.Services;
 
[WebService(Namespace="urn:Example1")]
public class Example1 {
 
    [ WebMethod ]
    public string sayHello(string name) {
        return "Привет " + name;
    }
 
}



содержание web.config файла:
Код: xml
1.
2.
3.
4.
5.
6.
7.
<!-- Web.Config Configuration File -->

<configuration>
    <system.web>
        <customErrors mode="Off"/>
    </system.web>
</configuration>



веб сервер IIS6 2003 x64

при открытии в браузере url http://server/soap/helloworld.asmx?op=sayHello с машины где крутиться веб сервер
вижу поле для ввода переменной name


а вот при попытке открыть тот же url http://server/soap/helloworld.asmx?op=sayHello c удаленной машины
вижу только описание сервиса без поля для ввода переменной name (ну и крамольную надпись The test form is only available for requests from the local machine.):

Код: html
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.
Example1


Click here for a complete list of operations.

sayHello

Test
The test form is only available for requests from the local machine. 
SOAP 1.1
The following is a sample SOAP 1.1 request and response. The placeholders shown need to be replaced with actual values.

POST /soap/helloworld.asmx HTTP/1.1
Host: Server
Content-Type: text/xml; charset=utf-8
Content-Length: length
SOAPAction: "urn:Example1/sayHello"

<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
  <soap:Body>
    <sayHello xmlns="urn:Example1">
      <name>string</name>
    </sayHello>
  </soap:Body>
</soap:Envelope>

...




Какие настройки или какой код нужно добавить, что бы с удаленной машины было доступно поле для ввода переменной name
...
Рейтинг: 0 / 0
"удаленный" вызов вебсервиса
    #37709166
max44
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дополню вопрос:
если "The test form is only available for requests from the local machine" озночает, что форму для ввода переменной name я могу увидеть только с local machine, вот пример где подобные поля доступны с удаленных машин http://www.mcommunicator.ru/m2m/m2m_api.asmx?op=SendMessage

правда там такая строка To test the operation using the HTTP POST protocol, click the 'Invoke' button. (возможно это означает что разрешен метод POST, а в моем примере нет ...)

ВОПРОС: (в отношение моего примера Example1, см. код в первом посте)
как через адресную строку браузера передать переменную name вебсервису?


Спасибо.
...
Рейтинг: 0 / 0
"удаленный" вызов вебсервиса
    #37709169
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Это нормальная дефолтная настройка - все пост запросы не с локалхоста запрещены.
Если очень хочется, можете принудительно включить эту возможность (но, не советую):

Код: xml
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
<configuration>
    <system.web>
        <webServices>
            <protocols>
                <add name="HttpGet"/>
                <add name="HttpPost"/>
            </protocols>
        </webServices>
    </system.web>
</configuration>
...
Рейтинг: 0 / 0
"удаленный" вызов вебсервиса
    #37709176
max44
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУ спасибо, получилось.

"Если очень хочется, можете принудительно включить эту возможность (но, не советую):"
я так понимаю, что это не очень хорошо с точки зрения безопасности?

тогда открою такую возможность на время разработки, до выноса вебсервиса в интернет.

Спасибо.
...
Рейтинг: 0 / 0
"удаленный" вызов вебсервиса
    #37709201
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну тут не столько безопасность, а сколько не все клиенты могут поддерживать мультипротоколы. Например, 1C-клиент не сможет сгенерить WS-ссылку по этому протоколу, потому, что не поддерживает POST (берется из описания WSDL).Во-вторых, роботы могут нажимать пост кнопку, если каким-то образом URL засветится в поисковом индексе.В-третьих, данный протокол полезен только для параметров веб-методов, имеющих простые типы. С объектными типами использование данной возможности становится бесполезным.Единственное, приемлемо для тестировщиков при тестировании параметров с простыми типами. Но, по хорошему, юнит-тест сгенерить для веб-сервиса и проще и понятней. Вообщем, тестируйте, а потом выключайте. И не забудьте указать свой неймспейс сервиса, отличный от дефолтного (tempuri).
...
Рейтинг: 0 / 0
"удаленный" вызов вебсервиса
    #37920681
Andrey1306
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУ... И не забудьте указать свой неймспейс сервиса, отличный от дефолтного (tempuri).

А не подскажете где указывается ?
...
Рейтинг: 0 / 0
"удаленный" вызов вебсервиса
    #37920868
max44
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: sql
1.
2.
3.
4.
5.
6.
7.
...
using System.Web.Services;
 
[WebService(Namespace="urn:Example1")]
public class Example1 {

...
...
Рейтинг: 0 / 0
"удаленный" вызов вебсервиса
    #37920896
Andrey1306
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
max44,

Спасибо, но ... бес попутал мне для wcf нужно а то получаю вот такую ошибку при попытке везвать метод wcf сервиса


тут текст ошибки

Не удалось обработать сообщение. Скорее всего, причина в том, что действие " http://tempuri.org/IServiceAutenfication/ValidateUser" является неправильным или сообщение содержит недопустимый или простроченный маркер контекста безопасности, либо имеет место несоответствие между привязками. Маркер контекста безопасности становится недействительным, когда канал прерван службой из-за отсутствия активности. Чтобы предотвратить преждевременное прерывание службой простаивающих сеансов, увеличьте тайм-аут Receive в привязке конечной точки службы.

...
Рейтинг: 0 / 0
8 сообщений из 8, страница 1 из 1
Форумы / WCF, Web Services, Remoting [игнор отключен] [закрыт для гостей] / "удаленный" вызов вебсервиса
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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