2010-05-17 3 views
0

У меня есть служба WCF, размещенная в локальном IIS. Я создал веб-сайт ASP.NET, который использует этот сервис в IIS.Служба WCF не работает на IIS!

При работе с Visual Studio WebDev Server все работает нормально, но как только я запустил тот же сайт [после размещения в IIS] из браузера, веб-сайт, похоже, не общается с Сервисом!

Такая же настройка при работе с Visual Studio WebDev Server не работает из IIS!

Знаете ли вы, что?

Пожалуйста, помогите!

Благодаря

+0

Вы можете показать нам (1) файл * .svc, (2) клиентскую app.config или web.config, (3) контракт на обслуживание (интерфейс) и (4) способ, которым вы пытаетесь позвонить услуге? –

ответ

0

Я держал пари, что это адрес - при использовании Add Service Reference будет жёстко «локальный» в файл ClientConfig на клиенте.

Проверьте это и реализуйте способ перехода на ваш реальный (IIS) адрес во время развертывания.

(Способ проверить, что у вас есть правильный адрес развертывания, чтобы потянуть его в браузере, попробуйте перейти на «http://yoururl.com/MyService.svc», вы должны получить страницу, которая будет ссылаться на WSDL, позволяя вам убедиться, что у вас есть правильный адрес .. это адрес ваш клиент должен искать)

+0

Проверьте файл .ClientConfig в проекте, который использует эту службу.Если он говорит localhost там, то это проблема – Bobby

0

Пара вещей, чтобы проверить:

  • у вас есть файл SVC? Где он находится?
  • Вы подключаетесь к правильному служебному адресу? Было бы:

    http://YourServerName/YourVirtualDirectory/YourServiceFile.svc 
    

    Это адрес, который вы получаете, когда хостинг в IIS - вы не можете изменить, что в вашем web.config, независимо от того, насколько сильно вы стараетесь.

  • - это конфигурации для привязки и т. Д., Идентичные на сервере и клиенте?
  • Вы включили HttpGetEnabled для метаданных службы? Можете ли вы перейти к адресу WSDL и вернуть WSDL?

    http://YourServerName/YourVirtualDirectory/YourServiceFile.svc?wsdl 
    
+0

Ну, все, что вы упомянули, сделано! 1. У меня есть служба WCF в IIS. 2. Мой сайт по-прежнему не размещен, я запускаю его из Visual Studio, он может связываться с сервисом. Все работает alrite 3. Я перемещаю свой веб-сайт в IIS, отдыхаю все то же самое, он общается с тем же сервисом WCF, размещенным в IIS 4. Теперь, когда я запускаю свой сайт из IIS, он не общается с сервисом! Я не знаю! – Jayesh

+0

Теперь возвращается ошибка «System.ServiceModel.CommunicationException Удаленный сервер возвратил ошибку: не найден»! Тем не менее, я просто попытался выяснить, работает ли служба, я распечатал состояние службы, и оно было открыто, что означало, что служба была там и слушала! только когда я вызываю контракт, он возвращает эту ошибку! – Jayesh

+2

см. Мой комментарий, я на 99% уверен, что это адрес. Проверьте файл .ClientConfig в проекте, который использует эту службу. Если он говорит localhost, то это проблема. – Bobby

0

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

Обычно при тестировании службы он будет работать на сервере Dev на http://localhost:someport/myservice.svc

При развертывании его IIS он будет работать на http://myserver.com/PossibleVDIR/myservice.svc

После того, как вы заботитесь об этом, вы должны быть в порядке.