Повторное использование asmx webservices в нескольких проектах - PullRequest
2 голосов
/ 13 апреля 2009

В нашей системе несколько проектов, которые хотят использовать один и тот же веб-сервис asmx. Кто-нибудь есть какие-либо советы / лучшие практики, как это сделать.

Проблема в том, что веб-сервисы постоянно меняются, поэтому я не могу просто добавить веб-ссылку в производство. Также это опасно, потому что при разработке я хочу, чтобы она указывала на мою локальную машину. Должен ли я просто добавить свои веб-ссылки на localhost?

Кроме того, я должен иметь выделенные проекты веб-сервисов, в отличие от файлов asmx, разбросанных по нескольким проектам?

Спасибо

Ответы [ 6 ]

2 голосов
/ 13 апреля 2009

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

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

-Edit-

Обычно считается наилучшей практикой иметь специализированные проекты веб-сервисов. У вас может быть несколько проектов веб-сервисов, и как вы разбиваете их, зависит от вас и ваших деловых / технических требований.

Это должно решить вашу главную проблему. У вас есть локальный проект веб-службы, а также локальные проекты, которые его потребляют. Вы развертываете один или оба этих проекта в производство по мере необходимости.

0 голосов
/ 13 апреля 2009

Вы должны создать проект библиотеки классов и определить там свой веб-сервис. Направьте этот проект в ваше веб-приложение. Затем в файле asmx webservice вы указываете его на класс webservice.

0 голосов
/ 13 апреля 2009

Если я правильно понимаю ваш вопрос, вы хотели бы иметь веб-сервис для разработки и производственный веб-сайт. Производственный экземпляр - это последняя отлаженная / проверенная сборка. Экземпляр отладки - это текущая сборка, над которой вы работаете.

Мой рекомендуемый метод для достижения этой цели состоит в том, чтобы иметь поддомен dev, чтобы вы могли иметь доступ к обоим веб-сервисам, например. http://www.myapp.com/Service.asmx и http://dev.myapp.com/Service.asmx. Оба поддоменов будут разными сайтами в IIS. В своем коде вы привязываете веб-ссылки к поддомену dev, так как этот домен будет использоваться для обновления веб-ссылок (при изменении параметров). Затем вы должны использовать «#if not debug», чтобы изменить URL-адрес объекта веб-службы на сайт www для производственного (релизного) кода.

Таким образом, вы будете строить против службы отладки, пока не будете довольны ею. В этот момент вы можете обновить программное обеспечение (если параметры изменились) и загрузить новый dll на сайт релиза.

Я бы оставил веб-сервисы в отдельном проекте, чтобы развернутая сборка была простой.

0 голосов
/ 13 апреля 2009

При разработке просто укажите веб-ссылку на локальный компьютер и запустите веб-сервис локально Я не вижу никаких проблем с этим.

0 голосов
/ 13 апреля 2009

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

0 голосов
/ 13 апреля 2009

Не уверен, что понимаю ваш вопрос. Если вы публикуете веб-сервис в производственной среде, все, что вам нужно сделать, это добавить веб-ссылку на него в каждое приложение, в котором оно требуется. Вся предпосылка использования веб-службы заключается в том, что вы делаете ее доступной - если вы используете ее только в своей среде разработки, возможно, вы захотите рассмотреть ее использование в качестве стандартной библиотеки C #, которую вы распространяете или оставляете в GAC?

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