Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > WPF и Silverlight > Установка Silverlight приложения на IIS


Автор: Saphir 11.12.2010, 19:08
Здравствуйте, в учебных целях интересуюсь... Есть маленький проектик на Silverlight 4. Нужно его развернуть на MS Server 2008. Сам сервер установлен. Подскажите пожалуйста как развернуть само приложение.

Автор: jonie 11.12.2010, 19:27
Saphir, вопросы
1) что вы используете для коннекте к хосту из SL : WCF, WCF Data Services, WCF RIA Services, что-то еще?
2) Подразумевате ли вы что для коннекта в базу будет использована windows аутентификация, или предпочитаете SQL Server-ную? Под кем запускается IIS ?
3) Установлено ли на сервере IIS7 или стоит IIS6 ? Стоит ли там .NET Framework 4 ? Зарегистрированы ли в IIS нужные MIME Type-ы (.svc, .xap как минимум) ?
4) Что вы используете в разработке кроме того что есть, например Silverlight Toolkit ?
....

Автор: reborn 11.12.2010, 19:34
Цитата(jonie @  11.12.2010,  19:27 Найти цитируемый пост)
1) что вы используете для коннекте к хосту из SL : WCF, WCF Data Services, WCF RIA Services, что-то еще?

Net.Sockets.Socket пропустили также ;)


Автор: Saphir 11.12.2010, 20:02
1. WCF Web Services
2. SQL Server-ная. Можно и под админом)
3. IIS 7, стоит .NET 4, нужные MIME Type-ы теперь стоят
4. Вся разработка велась в VS 2010, использовался SQL Server 2008.

Автор: jonie 12.12.2010, 15:42
ну тогда просто создавайте веб сайт в IIS и выкладывайте сайт в него, может быть придется поправить web.config... не забыть что надо активировать (по умолчаиню выключено) sql серверную авторизацию у MSSQL и коннекшены стринги соответствующие исправить в web.config. Дополнительно ничего не нужно, т.к. silverlight сам по себе это клиентская тенология - максимум проблемы с развертыванием всяких WCF * фиговин на сервере и их настройки)

Автор: Kaerus 13.12.2010, 17:29
Вопросик по теме от меня: 

Есть солюшен состоящий из 2-х проектов: 
1) Сервис WCF 
2) Silverlight приложение (которое обращается к нему за данными)

В режиме отладки используется DeveloperServer с одним портом, а развертывается оно на том же ПК (на IIS) который сидит на другом порте и IP.

Как сделать что бы не приходилось вручную менять настройки silverlight приложения (ip и порт сервиса) в ClientConfig для отладки и конечного релиза (хотелось бы автоматизировать это)?

Автор: jonie 13.12.2010, 20:36
Kaerus, ну тупой топорный способ это написание конфиги для дебага и релиза (diff конфигурации, это поддерживается VS2010 из коробки)...
А вообще меняйте порт в рантайме: если у вас и хост и wcf на одном порту, тогда берите текущий адрес (App.Current.Host.Source) и парсите .... ну и задавайте своему прокси-клиенту нужный и сформированный endpoint
Кстати вы можете использовать Uri("/service.svc", UriKind.Relative) как точку enpdoint....

А еще не забывайте, что если у вас на разных доменах силверлайт и wcf сервис, то вам надо в настройках IIS добавить файл accesspolicy.xml (или как-то так) для применения кросдоменной политики (поищите либо тут я уже отвечал, либо в интернет)...

Автор: Saphir 17.12.2010, 22:46
Спасибо за ответы. Вылезает ошибка (http://img594.imageshack.us/i/screen3xr.jpg/). Не обработанное исключение. Оно связано с неправильным файлом конфигурации или какой-то ошибкой на сервере?

Автор: jonie 17.12.2010, 23:30
Saphir, возьмите Fidder или другой веб прокси и посмотрите что сервер отсылает в HTTP 500 ...

Автор: Saphir 18.12.2010, 16:03
jonie, большое спасибо за наводку. Сейчас проблема с подключением базы данных:

System.Data.SqlClient.SqlException: Failed to generate a user instance of SQL Server due to failure in retrieving the user's local application data path. Please make sure the user has a local user profile on the computer. The connection will be closed.

Уверен, что связана с тем, что запрещена серверная авторизация. Пытался исправить это, используя вот http://social.msdn.microsoft.com/forums/en-US/sqldatabaseengine/thread/88def9dd-5bf7-4156-b416-6db1c6752d48/ ссылку, но запрос не выполняется из-за ошибки. Можно ли каким-то другим образом разрешить эту проблему?

Автор: jonie 18.12.2010, 16:30
Saphir, да нет, это из-за того что вы коннектясь от имени юзера под кем запущен IIS (если используете автоирзацию windows для mssql) не можете туда законнектится..... хоят мб и серверная авторизация, хрен его знает что вы там написали ж)

И вообще это уже вопрос не про разворачивание и силверлайт, а про обычный C# ... можно, кстати , логирование делать же и вообще отладчиком подрубиться 8)

Автор: Saphir 24.12.2010, 13:02
Вопрос решен. Решил его правкой веб конфига (указал там пользователя для доступа к базе данных)...  smile 

Автор: zoNder 23.1.2011, 23:45
Возможно ли запустить приложение на IIS6 написанное на  .NET Framework ? Т.е. в качестве сервера будет выступать Windows 2003 IIS 6  с установленным .Net 4

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)