部署网站时,远程数据库连接失败

时间:2011-04-19 11:55:29

标签: asp.net silverlight entity-framework

我使用GoDaddy的在线数据库管理器创建了一个数据库,但是在部署ASP.NET项目后我无法查询它。在我的本地机器上,一切正常。我有一个充满数据的数据网格。

以下是从本地计算机查询数据库时所遵循的步骤:

  • 创建Silverlight应用程序。在ASP.NET Web应用程序中托管SL项目。启用WCF RIA服务
  • 将新的实体模型添加到ASP.NET项目中。实体连接字符串指向远程数据库
  • 将域服务添加到ASP.NET项目
  • 使用左侧的“数据源”选项卡将数据网格添加到Silverlight项目中

当我运行应用程序时,我可以使用本地计算机上的数据填充网格。当我使用Publish Web向导进行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 个答案:

答案 0 :(得分:1)

  

我听说SL应用程序需要clientaccesspolicy.xml文件。是否在使用WCF RIA服务时需要它?

是。您必须明确允许跨域访问。它在本地工作,因为您的网站和数据库服务器位于同一个“域” - 您的本地计算机上。

clientaccesspolicy.xml文件必须位于托管服务的域的根目录中。

您也可以使用crossdomain.xml - Silverlight支持两者。

Source