Мы экспериментируем с размещением приложения silverlight на Amazons EC2.
Я могу заставить его обслуживать файл .xap, но у меня возникли некоторые проблемы с использованием веб-сервисов, которые требуются приложению silverlight.
Обычно я добавляю ссылку на службу в visual studio и вводю URL для веб-службы, например, http://url.com/ServiceName.svc, и для меня создается прокси.
Однако, когда экземпляр Amazon Elastic Cloud вводит URL-адрес
http://ec2 -174-129-139-48.compute-1.amazonaws.com / AuthService.svc
выдает ошибку "не распознается как известный тип документа"
И если я введу
http://ec2 -174-129-139-48.compute-1.amazonaws.com / AuthService.svc? Wsdl
В адресную строку интернет-проводника я получаю описание wsdl - но эта часть в конфигурации выглядит немного странно
<wsdl:types> <xsd:schema targetNamespace="http://asp.net/ApplicationServices/v200/Imports"> <xsd:import schemaLocation="http://ip-0af8db15/AuthService.svc?xsd=xsd0" namespace="http://asp.net/ApplicationServices/v200" /> <xsd:import schemaLocation="http://ip-0af8db15/AuthService.svc?xsd=xsd1" namespace="http://schemas.microsoft.com/2003/10/Serialization/" /> </xsd:schema> </wsdl:types>
Расположение схемы http://ip -0af8db15 / AuthService.svc ? не похоже на правильный адрес для меня?
Кто-нибудь знает, нужно ли мне что-то настраивать или что-то менять для доступа к веб-сервисам WCF в Amazon EC2?
Редактировать: Следует отметить: Windows Server 2003, IIS 6.0
Редактировать: похоже, ip-0af8db15 - это имя машины
На всякий случай, если кто-то столкнулся с той же проблемой: при создании прокси попробуйте удалить http: // в начале адреса EC2, а затем в настройке службы заменить часть "ip-0af8db15" на адрес EC2.
Надеюсь, это помогло.
Эта тема (особенно последние два сообщения) помогла мне решить эту проблему.
http://social.msdn.microsoft.com/Forums/en-US/wcf/thread/c7fd51a2-773e-41d4-95a0-244e925597fe/
У меня тот же сценарий, развернутый без проблем. Почему бы вам не попробовать использовать IP-адрес вместо динамического имени хоста:
http://174.129.139.48/AuthService.svc
Edit:
Если имя недостижимого сервера вводится в сгенерированный прокси-сервер VS.Net, вы можете настроить его вручную в автоматически сгенерированном файле configuration.svcinfo. Кроме того, вы можете установить URL-адрес программно, это лучший вариант, так как он не будет перезаписан, если вам потребуется повторно сгенерировать прокси.
BasicHttpBinding binding = new BasicHttpBinding(); EndpointAddress address = new EndpointAddress("http://174.129.139.48/AuthService.svc"); YourProxy yourProxy = new YourProxy(binding, address);