Я пытаюсь использовать службу PHP SOAP из C # и создать оболочку класса в VS 2010 - PullRequest
2 голосов
/ 08 декабря 2011

Мне было поручено создать оболочку класса для службы SOAP, идея в том, что вы сможете обращаться с ней как с обычным классом.Основная причина этого заключается в том, что WDSL для службы SOAP содержит только один метод, и у него есть 5 параметров, и это всего лишь вид OO, поэтому вам нужно знать все вызовы методов очень хорошо, и их немного сложно запомнить..

ОК, поэтому я попытался добавить веб-ссылку, теперь веб-ссылки теперь могут быть добавлены как ссылки на службы в VS 2010. Вы нажимаете добавить ссылку на услугу дополнительно и т. Д., И она вставляет ссылку на службу.Отлично.К сожалению, если я попытаюсь получить доступ к этому из класса, я не могу.

Я могу создать консольное приложение и поместить код в основную процедуру и получить доступ к методу службы SOAP, но когда я добавляю ссылку наВ библиотеке классов Intellisense не позволит мне выбрать что-либо.Я бы создал экземпляр, например, так:

SOAPService.webServiceService ws = new SOAPService.webserviceService();

ws.

, а затем intellisense отказывается включиться. Если я сделаю то же самое в веб-проекте или консольном приложении, я смогу получить к нему доступ.Я добавил пространство имен, я сделал все что угодно.Кроме того, я могу добавить веб-ссылку и получить файл DISCO всякий раз, когда создаю веб-проект.

ОК, также, пока я занимаюсь этим вопросом, мне также необходимо передать учетные данные веб-службе в PHP.

Проблема в том, что в прошлом я создавал учетные данные системы .net и добавлял их, и они обычно проходили, если я подключался к другой службе .net.

Как мне отправлять их на веб-сервис PHP?Я всегда получаю либо недопустимые комбо-ошибки с именем пользователя / паролем, либо с ошибками в формате конверта

Спасибо, господин B

1 Ответ

0 голосов
/ 09 декабря 2011

То есть intellisense не работает, но если добавить метод и попытаться использовать его, он работает или выдает ошибку?

Что касается диагностики проблем аутентификации, попробуйте использовать fiddler для просмотра отправляемых SOAP-сообщений и просмотра ответа. У вас есть какое-то другое программное обеспечение, которое подключается и аутентифицируется к этой службе? Используйте fiddler, чтобы просмотреть сообщения SOAP и сравнить их, чтобы увидеть, отличается ли заголовок и т. Д.

Я бы обычно так делал,

using (Service service = new Service())
{
    service.ClientCredentials.Windows.ClientCredential.Domain = "domain";
    service.ClientCredentials.Windows.ClientCredential.Password = "password";
    service.ClientCredentials.Windows.ClientCredential.UserName = "username";
}

Также, что касается службы, работающей или не использующей вообще fiddler, если у вас есть какие-либо проблемы, вы можете видеть сообщения SOAP, и это часто дает вам более четкое сообщение.

Я знаю, что в IIS вы можете включить обработку неудачных запросов, которая также дает вам представление о том, что происходит на стороне сервера, возможно, у вас также есть какая-то форма регистрации для вашей службы php?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...