Я сделал простое приложение Silverlight с веб-сервисом, вызывающим базу данных, и заставил его работать на моем компьютере для разработки.
Когда я опубликовал проект веб-службы в IIS на том же компьютере и получил доступ к приложению Silverlight из IIS, используя http://localhost/SilverlightTest/,, я мог видеть Silverlight на странице, но вызов веб-службы не был рабочий.
Поэтому я добавил файл clientaccesspolicy.xml в нескольких местах. Во всех инструкциях написано, чтобы поместить его в корневой каталог, поэтому я попытался:
c: \ inetpub / wwwroot \ Не работает
c: \ webs \ SilverlightTest \ Это папка, в которую я опубликовал проект веб-службы, включая файл xap. Но не сработало
c: \ webs \ Просто предположение, но это не сработало.
Затем в VS я добавил файл в проект веб-службы, и он добавил его в папку, где хранится проект веб-службы c: \ work \ Silverlight \ TestWCF \ TestWCF.Web \. Когда я открыл страницу в Firefox из IIS, вызов веб-службы теперь работал. По-видимому, приложение Silverlight вызывает веб-службу в моей папке для разработки, а не службу в виртуальном каталоге IIS c: \ webs \ SilverlightTest \ (он не работал, когда я открывал страницу с другого компьютера в рабочая группа) /
Почему приложение Silverlight вызывает веб-службу в папке для разработки? Разве веб-сервис не должен находиться в виртуальном каталоге, в котором он был опубликован? Как я могу устранить путаницу?
Вот конфигурация в моем файле ServiceReferences.ClientConfig
<client>
<endpoint address="http://dellnov2006:2753/SimpleWCF.svc" binding="basicHttpBinding"
bindingConfiguration="BasicHttpBinding_ISimpleWCF" contract="SimpleWCF.ISimpleWCF"
name="BasicHttpBinding_ISimpleWCF" />
Будем весьма благодарны за любую помощь, объяснения или ссылки на соответствующие статьи. Мы будем благодарны за статью, объясняющую, как приложения Silverlight называют веб-сервисы.
Спасибо
Майк Томас