Сбой подключения к удаленной базе данных при развертывании веб-сайта - PullRequest
1 голос
/ 19 апреля 2011

Я создал базу данных с помощью онлайн-менеджера баз данных GoDaddy, но не могу запросить ее после развертывания своего проекта ASP.NET. На моей локальной машине все отлично работает. У меня есть сетка данных, которая заполнена данными.

Вот шаги, которые я выполнил для запроса базы данных с моего локального компьютера:

  • Создание приложения Silverlight. Разместите проект SL в веб-приложении ASP.NET. Включить службы WCF RIA
  • Добавить новую модель сущности в проект ASP.NET. Строка подключения объекта указывает на удаленную базу данных
  • Добавление доменной службы в проект ASP.NET
  • Добавление сетки данных в проект Silverlight с помощью вкладки «Источники данных» с левой стороны

Когда я запускаю приложение, я могу заполнить сетку данными на моем локальном компьютере. Когда я выполняю FTP-развертывание с помощью мастера публикации в Интернете, приложение успешно загружается, поскольку я вижу файлы через приложение FTP.

Что я делаю не так? Я слышал, что приложениям SL нужен файл clientaccesspolicy.xml. Нужно ли это, когда используются сервисы WCF RIA? Нужно ли мне изменить мой файл Web.config? Вот автоматически сгенерированный файл конфигурации VS:

<?xml version="1.0" encoding="utf-8"?>
<!--
  For more information on how to configure your ASP.NET application, please visit
  http://go.microsoft.com/fwlink/?LinkId=169433
  -->
<configuration>
  <system.webServer>
    <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>
    <validation validateIntegratedModeConfiguration="false" />
  </system.webServer>
  <system.web>
    <httpModules>
      <add name="DomainServiceModule" type="System.ServiceModel.DomainServices.Hosting.DomainServiceHttpModule, System.ServiceModel.DomainServices.Hosting, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
    </httpModules>
    <compilation debug="true" targetFramework="4.0">
      <assemblies>
        <add assembly="System.Data.Entity, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
      </assemblies>
    </compilation>
  </system.web>
  <connectionStrings>
    <add name="(Entities Here)" connectionString="metadata=res://*/Model1.csdl|res://*/Model1.ssdl|res://*/Model1.msl;provider=System.Data.SqlClient;provider connection string=&quot;Data Source=(Source Here);Initial Catalog=(Catalog Here);User ID=(ID Here);Password=(Password Here);MultipleActiveResultSets=True&quot;" providerName="System.Data.EntityClient" />
  </connectionStrings>
  <system.serviceModel>
    <serviceHostingEnvironment aspNetCompatibilityEnabled="true"
      multipleSiteBindingsEnabled="true" />
  </system.serviceModel>
</configuration>

1 Ответ

1 голос
/ 19 апреля 2011

Я слышал, что приложениям SL нужен файл clientaccesspolicy.xml.Нужно ли это при использовании услуг WCF RIA?

Да.Вы должны явно разрешить междоменный доступ.Он работал локально, поскольку ваш веб-сайт и сервер базы данных находились в одном и том же «домене» - вашем локальном компьютере.

Файл clientaccesspolicy.xml должен находиться в корневом каталоге домена, в котором размещена служба.*

Вы также можете использовать crossdomain.xml - Silverlight поддерживает оба.

Источник

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