Почему мое приложение Silverlight не может загрузить данные из sql на действующий сайт с помощью WCF? - PullRequest
2 голосов
/ 06 апреля 2009

Мое приложение silverlight загружает данные из SQL нормально, когда я строю локально, но когда я загружаю его на рабочий сайт, оно просто будет ждать загрузки данных, но не выдает ошибок. Это работало до вчерашнего дня, когда я боюсь, что, возможно, где-то изменил настройку, и теперь я не могу получить доступ к данным, которые кажутся?

ОБНОВЛЕНИЕ 1: похоже, проблема с ссылками на сервис. Каждый раз, когда я обновляю их, он очищает файл ServiceReferences.ClientConfig, а затем программа не собирается.

ОБНОВЛЕНИЕ 2: Я пробовал убирать и строить, но проблема все та же.

ОБНОВЛЕНИЕ 3: Обнаружена ошибка при попытке доступа к сервисной ссылке на действующем сайте:

Эта коллекция уже содержит адрес со схемой http. В этой коллекции может быть не более одного адреса на схему. Имя параметра: элемент Описание: во время выполнения текущего веб-запроса произошло необработанное исключение. Пожалуйста, просмотрите трассировку стека для получения дополнительной информации об ошибке и о том, где она возникла в коде.

Сведения об исключении: System.ArgumentException: эта коллекция уже содержит адрес со схемой http. В этой коллекции может быть не более одного адреса на схему. Имя параметра: элемент

1 Ответ

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

Звучит так, как будто ваше приложение чего-то ждет, истекает ли оно через 30 секунд? Если это так, проверьте строку подключения SQL.

Если между Silverlight и SQL существует другой уровень (например, веб-служба), настройте тест соединения, чтобы убедиться, что Silverlight действительно достигает SQL ...

Вы случайно заменили свой живой файл web.config? Если это так, попробуйте восстановить старый файл web.config, поскольку он может иметь параметр, который не совместим с вашим сервером.

Re: Обновление 1:

Есть ли ошибка? Если это так, пожалуйста, вставьте его. Также, пожалуйста, вставьте нужный файл конфигурации в pastebin и ссылку на него отсюда.

Re: Обновление 3:

Ошибка «Эта коллекция уже содержит адрес со схемой http.» вызвано тем, что сервис WCF не сообщает явно, с каким адресом вы хотите связать, когда есть из чего выбрать. В этом случае похоже, что IIS использует несколько URL-адресов, например, рассмотрим следующие вымышленные адреса:

  • www.mysite.com
  • mysite.com

... поэтому служба WCF понятия не имеет, какую использовать, если вы не скажете это.

Решение этой проблемы состоит в том, чтобы явно определить, какой URL использовать со следующими строками конфигурации в web.config (в узле system.serviceModel) вашей службы WCF.

<serviceHostingEnvironment aspNetCompatibilityEnabled="true">
  <baseAddressPrefixFilters>
    <add prefix="http://www.mysite.com/SomeDirectory/MyService" />
  </baseAddressPrefixFilters>
</serviceHostingEnvironment>

Важно:

Вам следует обновить заголовок вашего вопроса, чтобы указать, что WCF участвует в решении, которое вы создали.

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