2011-12-23 60 views
1

我正在開發一個ASP.NET MVC3 Web應用程序,它使用Entity Framework 4.1和MySQL。MVC3 + EF4 + MySQL System.Security.SecurityException:請求失敗

當地一切運作良好,但是當我解決方案部署到虛擬主機,它給了我下面的錯誤信息:

System.Security.SecurityException:請求失敗。在 System.Security.CodeAccessSecurityEngine.ThrowSecurityException(RuntimeAssembly ASM,PermissionSet中授予的PermissionSet拒絕, RuntimeMethodHandleInternal RMH,SecurityAction行動,對象的需求, IPermission permThatFailed)在 System.Security.CodeAccessSecurityEngine.ThrowSecurityException(對象 assemblyOrString,PermissionSet中授予,PermissionSet中拒絕了, RuntimeMethodHandleInternal RMH,SecurityAction行動,對象的需求, IPermission permThatFailed)在 System.Security.CodeAccessSecurityEngine.CheckSetHelper(PermissionSet中 補助,PermissionSet中拒絕了,PermissionSet中的要求, RuntimeMethodHandleInternal RMH,對象assemblyOrS特林,在 System.Security.PermissionSetTriple.CheckSetDemand(PermissionSet中 demandSet,PermissionSet中& alteredDemandset, RuntimeMethodHandleInternal RMH)在 System.Security.PermissionListSet.CheckSetDemand SecurityAction動作,布爾throwException)(PermissionSet中的pset, RuntimeMethodHandleInternal RMH)在 System.Security.PermissionListSet.DemandFlagsOrGrantSet(的Int32標誌, 的PermissionSet grantSet)在 System.Security.CodeAccessSecurityEngine.ReflectionTargetDemandHelper(的Int32 許可,PermissionSet中targetGrant,CompressedStack SecurityContext的)在 System.Security.CodeAccessSecu rityEngine.ReflectionTargetDemandHelper(的Int32 許可,PermissionSet中targetGrant)失敗了行動: 需求發生故障的類型的第一個權限是: System.Security.PermissionSet

我的web.config:

<connectionStrings> 
    <add name="MySqlMembershipConnection" connectionString="Data Source=localhost;userid=userName;password=passw0rd;database=tv;" providerName="MySql.Data.MySqlClient,Version=6.3.6.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d"/> 
    <add name="TvEntities" connectionString="metadata=res://*/Entities.Model.csdl|res://*/Entities.Model.ssdl|res://*/Entities.Model.msl;provider=MySql.Data.MySqlClient;provider connection string=&quot;server=127.0.0.1;port=3351;User Id=userName;password=passw0rd;Persist Security Info=True;database=tv&quot;" providerName="System.Data.EntityClient" /> 
</connectionStrings> 

<system.data> 
    <DbProviderFactories> 
     <clear /> 
     <add name="MySQL Data Provider" invariant="MySql.Data.MySqlClient" description=".Net Framework Data Provider for MySQL" 
     type="MySql.Data.MySqlClient.MySqlClientFactory, MySql.Data,Version=6.3.6.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d" /> 
    </DbProviderFactories> 
</system.data> 

Trustlevel在Medium上。

任何想法?

+0

你已經記得改變你的web.config所以它不指向本地主機?如果每次我忘記我都有一分錢,我會有大約4便士。 – 2011-12-23 13:18:44

回答

2

你可以隨時切換到另一個託管服務提供商完全信任?

2

嘗試使用更新版本的連接器。它是reported as a bug,應該在6.3.7和6.4.1中修正。

+0

不幸的是,我仍然有與MySQL 6.4.4相同的錯誤。 – Colin 2011-12-27 10:01:34

0

添加對System.Web.Providers的引用。

PM> Install-Package System.Web.Providers 

在下面的條目已被添加到配置文件部分

<roleManager defaultProvider="DefaultRoleProvider"> 
    <providers> 
     <add name="DefaultRoleProvider" type="System.Web.Providers.DefaultRoleProvider,    
        System.Web.Providers, Version=1.0.0.0, Culture=neutral, 
        PublicKeyToken=31bf3856ad364e35" 
        connectionStringName="DefaultConnection" applicationName="/" /> 
    </providers> 
</roleManager> 

然後在web.config文件還確認:如果組件不可用的NuGet包管理器,如下所示本地安裝您可以重建應用程序並執行它。