获取安全异常 SQLCE 4、Code First CTP 5 和共享主机

Posted

技术标签:

【中文标题】获取安全异常 SQLCE 4、Code First CTP 5 和共享主机【英文标题】:Getting Security Exception SQLCE 4, Code First CTP 5 & Shared Hosting 【发布时间】:2011-02-23 01:56:08 【问题描述】:

我一直在尝试使用 MVC3 Razor、SQLCE 4 和 Code First 设置网页,最后两个是从 Nuget 下载的,所以它是 EF Code First CTP5。

我遇到了很多麻烦,但我设法继续关注this answer

但是现在我得到了这个安全异常

说明The application attempted to perform an operation not allowed by the security policy. To grant this application the required permission please contact your system administrator or change the application's trust level in the configuration file.

我认为它应该在没有完全信任的情况下工作,所以我现在不知道出了什么问题。

我正在使用带有 .Net 4 和 IIS7 的 GoDaddy 共享主机

可能是什么问题?

编辑:

我没有修改web.config,除了设置自定义errors = false 才能看到异常,否则我有使用Nuget 生成的webconfig 先获取和配置SQLCE 和代码

原来是这样的:

  <?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=152368
  -->
<configuration>
  <appSettings>
    <add key="ClientValidationEnabled" value="true" />
    <add key="UnobtrusivejavascriptEnabled" value="true" />
  </appSettings>
  <system.web>
    <customErrors
   mode="Off"
   />
    <compilation debug="true" targetFramework="4.0">
      <assemblies>
        <add assembly="System.Web.Abstractions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
        <add assembly="System.Web.Helpers, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
        <add assembly="System.Web.Routing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
        <add assembly="System.Web.Mvc, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
        <add assembly="System.Web.WebPages, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
      </assemblies>
    </compilation>
    <pages>
      <namespaces>
        <add namespace="System.Web.Helpers" />
        <add namespace="System.Web.Mvc" />
        <add namespace="System.Web.Mvc.Ajax" />
        <add namespace="System.Web.Mvc.html" />
        <add namespace="System.Web.Routing" />
        <add namespace="System.Web.WebPages" />
      </namespaces>
    </pages>
  </system.web>
  <system.webServer>
    <validation validateIntegratedModeConfiguration="false" />
    <modules runAllManagedModulesForAllRequests="true" />
  </system.webServer>
  <runtime>
    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
      <dependentAssembly>
        <assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35" />
        <bindingRedirect oldVersion="1.0.0.0-2.0.0.0" newVersion="3.0.0.0" />
      </dependentAssembly>
    </assemblyBinding>
  </runtime>
  <system.data>
    <DbProviderFactories>
      <remove invariant="System.Data.SqlServerCe.4.0" />
      <add name="Microsoft SQL Server Compact Data Provider 4.0" invariant="System.Data.SqlServerCe.4.0" description=".NET Framework Data Provider for Microsoft SQL Server Compact" type="System.Data.SqlServerCe.SqlCeProviderFactory, System.Data.SqlServerCe, Version=4.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91" />
    </DbProviderFactories>
  </system.data>
</configuration>

【问题讨论】:

好吧,看来它的EF CTP 5 错了:( 奇怪,我没有这个问题。我认为这是一个信任问题,但我不确定。 @Jesus,你用的是什么版本的 CodeFirst? 【参考方案1】:

这似乎是 CTP5 的一个错误,将在最终版本中修复。

http://connect.microsoft.com/VisualStudio/feedback/details/641462/ef-code-first-issue-with-medium-trust

【讨论】:

【参考方案2】:

嗯,正如我在问题的第一条评论中所说,这是 Code First CTP5 的错误,它使用完全信任而不是中等信任。 Source

【讨论】:

以上是关于获取安全异常 SQLCE 4、Code First CTP 5 和共享主机的主要内容,如果未能解决你的问题,请参考以下文章

EF Code First w/SQLCE 4 bin 是不是可部署?

在 WPF 中使用 EF Code First 和 SqlCe

SQLCE 4 私有部署实体框架 6

KeyNotFoundException:SQLCE 数据库异常

MVC3 EF4.1 代码优先延迟加载

该列不能包含空值。 SqlCE 异常