Как опубликовать сайт Silverlight с помощью доменного сервиса? - PullRequest
0 голосов
/ 06 декабря 2010

У меня есть решение Visual Studio 2010 с 2 проектами.Один из них - клиент Silverlight, другой - веб-сайт, к которому я добавил доменную службу.Он отлично работает при отладке в Cassini, но при публикации в IIS из запроса сущности ничего не возвращается.

Я даже не уверен, с чего начать, поскольку это моя первая попытка сделать это.

Ответы [ 3 ]

1 голос
/ 06 декабря 2010

Несколько вещей:

Разработка на Cassini (не делайте этого, если вы можете избежать этого)

Всегда лучше развиваться против самого IIS.Есть различия между IIS и Cassini, которые могут укусить вас, если вы не знаете их, и это просто имеет больше смысла;Вы должны всегда развиваться как можно ближе к среде, для которой вы разрабатываете.Если вы не развертываете на Cassini (а у вас нет, никто не делает), то нет смысла развиваться против него, если вы просто не можете (у вас нет локальной установки IIS).

Web Deploy

Установите Web Deploy на сервере IIS, на котором вы собираетесь развернуть.Сделав это, вы можете щелкнуть правой кнопкой мыши проект web / domain в своем решении и выбрать «Build Deployment Package».

Затем вы получите пакет, который вы можете использовать с Web Deploy, который развернет все (компоненты Silverlight, ASP.NET и т. д. и т. д.) вашего проекта в IIS с помощью простого вызова командной строки.

0 голосов
/ 23 марта 2011

Это была очень глупая проблема новичка.Я использовал SQL Server Profiler для наблюдения за поступающими запросами и понял, что учетная запись, используемая для аутентификации на SQL Server, была учетной записью компьютера сервера.Я защитил методы доменной службы и разрешил учетной записи компьютера доступ к БД.

0 голосов
/ 25 января 2011

При развертывании в IIS могут возникнуть некоторые проблемы.Я хотел бы увидеть, какие сообщения об ошибках вы получаете.Без этой информации будет довольно сложно дать вам совет.

PS: я предполагаю, что ваши службы WCF RIA имеют правильное определение; -).

Исходя из моего опыта, это минимальный файл конфигурации, но он, безусловно, потребует больше настроекесли вы используете доменные службы аутентификации или доменные службы данных (такие как доменные службы LinqToEntities или LinqToSql):

Убедитесь, что в вашем IIS есть все разделы, требуемые WCF RIA

<?xml version="1.0"?>
<configuration>
  <configSections>
    <sectionGroup name="system.serviceModel">
      <section name="domainServices" type="System.ServiceModel.DomainServices.Hosting.DomainServicesSection, System.ServiceModel.DomainServices.Hosting, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" allowDefinition="MachineToApplication" requirePermission="false" />
    </sectionGroup>
  </configSections>
  <system.web>

  <!-- You might need identify tag if you app requires additional permission to run -->

  <!-- See you want to see more details when a error happens -->
  <customErrors mode="Off"/>
  <compilation debug="true" targetFramework="4.0" />

  <!-- If your application uses authentication and authoriztion then -->
  <!-- Elements required required for authentication: authentication and membership and probably roleManager -->


<httpModules>
      <add name="DomainServiceModule" type="System.ServiceModel.DomainServices.Hosting.DomainServiceHttpModule, System.ServiceModel.DomainServices.Hosting, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
    </httpModules>
  </system.web>
  <system.webServer>
    <validation validateIntegratedModeConfiguration="false" />
    <modules runAllManagedModulesForAllRequests="true">
      <add name="DomainServiceModule" preCondition="managedHandler"
          type="System.ServiceModel.DomainServices.Hosting.DomainServiceHttpModule, System.ServiceModel.DomainServices.Hosting, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
    </modules>
  </system.webServer>

  <system.serviceModel>
    <serviceHostingEnvironment aspNetCompatibilityEnabled="true" multipleSiteBindingsEnabled="true" />
  </system.serviceModel>

</configuration>

Убедитесь, что службы RIA WCF запущены и работают Попробуйте получить доступ к службе RIA WCF с помощью веб-браузера.Обычно предоставляемый вами сервис имеет формат, подобный следующему:

http://[hostname]/[namespacename]-[classname].svc

Итак, вы должны иметь возможность нажать на URL-адрес и увидеть результат, подобный: enter image description here

Убедитесь, что библиотеки DLLS доступны Существует два варианта развертывания библиотек RIA WCF на стороне сервера.Вы можете указать приложению, что библиотеки DLL должны быть скопированы в папку bin вашего приложения, или вы можете запустить установщик WCF RIA в режиме сервера.

Доступ к службам с клиента Если службы запущены и работают, они должны быть доступны вашему клиенту Silverlight.Если есть ошибка, вы можете начать трассировку, включив отладку WCF RIA.См. http://blogs.msdn.com/b/saurabh/archive/2010/03/16/ria-services-application-deployment.aspx для получения более подробной информации об этом.

...