0

我正在使用EntityFramework平台Windows Azure。它在LOCAL模式下运行良好,但是当我尝试Silverlight在 Web 上运行我的应用程序时。我收到一个错误:

基础提供程序在打开时失败。

<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>
  <appSettings>
    <add key="aspnet:UseTaskFriendlySynchronizationContext" value="true" />
    <add key="ValidationSettings:UnobtrusiveValidationMode" value="WebForms" />
  </appSettings>
  <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>
    <customErrors mode="Off" />
    <compilation debug="true" targetFramework="4.5">
      <assemblies>
        <add assembly="System.Data.Entity, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
      </assemblies>
    </compilation>
    <httpRuntime requestValidationMode="4.5" targetFramework="4.5" encoderType="System.Web.Security.AntiXss.AntiXssEncoder, System.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
    <pages controlRenderingCompatibilityVersion="4.5" />
    <machineKey compatibilityMode="Framework45" />
  </system.web>
  <system.serviceModel>
    <serviceHostingEnvironment aspNetCompatibilityEnabled="true" multipleSiteBindingsEnabled="true" />
  </system.serviceModel>
  <connectionStrings>
    <add name="DatabaseEntities" connectionString="metadata=res://*/Model.csdl|res://*/Model.ssdl|res://*/Model.msl;provider=System.Data.SqlClient;provider connection string=&quot;data source=lnqg2ulkjr.database.windows.net;initial catalog=BuilderDatabase;persist security info=True;user id=XXXXX;password=XXXXX;MultipleActiveResultSets=True;App=EntityFramework&quot;" providerName="System.Data.EntityClient" />
  </connectionStrings>
</configuration>

我正在检查这是连接字符串中的问题,Integrated Security但在我的情况下,我没有该属性。可能是什么错误?

4

1 回答 1

3

此错误来自实体 - 它与 Silverlight 无关。它发生在以下两种情况之一发生时:

  • 实体尝试登录到您指向的数据库,但被拒绝权限/找不到服务器/找不到实例/有其他一些连接错误
  • 实体成功登录,但找不到它识别的数据模型

第二个应该很容易检查,因为你有一个工作的本地人。如果您本地的数据模型与您的“生产”环境中的数据模型相同,那么该部分将得到处理。如果您有不同的表,您可能会遇到一些问题。如果它们缺少您已编码到实体数据模型中的列,则这是双重事实。在许多情况下,实体会容忍额外的列和额外的表,尽管这会根据情况发生很大变化,所以 YMMV。但是,如果 Entity 期望某些东西在那里,但它不是,它每次都会快速崩溃。

我更大的怀疑是你那里的连接字符串相当棒。您应该能够检查InnerException您所获得的信息,以了解数据库服务器引发的具体问题。如果不是,我会把它撕成一个控制台应用程序,并尝试与一个普通的简连接,SqlConnection做一个简单的Select count(Id) from dbo.SmallTable. 这将允许您隔离连接问题并在一个良好的受限环境中处理它们。在对连接问题进行排序后,您可以将连接字符串(现在希望不再那么混乱)粘贴回去并继续。

于 2012-10-29T19:42:34.823 回答