2009-09-21 7 views
0

Моя проблема тесно связана с этим: How can I use .NET web services from non-standard ports?. Мой веб-сервис работает за брандмауэром, перенаправляющим порт, поэтому номера портов, о которых сообщается в документе WSDL, содержат внутренний порт с высоким номером. Я написал класс SoapExtensionReflector, который может переписать документ WSDL. Поэтому запрос, например example.com/path/loginservice?wsdl, обрабатывается правильно.Исправить нестандартный порт веб-сервера на contractRef и docRef

Однако это не относится к запросу «disco»: example.com/path/loginservice?disco. Это возвращает XML-документ, как это:

<discovery> 
    <contractRef ref="http://example.com:10092/loginservice.asmx?wsdl" docRef="http://example.com:10092/loginservice.asmx"/> 
    <soap address="http://example.com/path/loginservice.asmx" binding="q1:LoginServiceSoap"/> 
    <soap address="http://example.com/path/loginservice.asmx" binding="q2:LoginServiceSoap12"/> 
</discovery> 

Хотя мыло переплеты были должным образом переписаны в SoapExtensionReflector, что URL-contractRef и docRef имеет порт с большим номером. Как я могу их переписать?

ответ

1

Наконец-то выдумал что-то. Создал классы прокси вручную, используя svcutil после переноса всего на WCF. Я полагаю, вы, вероятно, могли бы сделать то же самое, используя инструмент wsdl, который поставляется со старыми веб-службами asp.net, но я этого не пробовал.

+0

Я не нашел исправления. Я перешел на WCF. Мне все еще приходилось писать расширения, чтобы исправить проблему с портом, используя WCFExtras. Это очищает WSDL, но у меня все еще есть номер порта, отображаемый на веб-странице .svc, хотя он довольно безвреден. –

 Смежные вопросы

  • Нет связанных вопросов^_^