2011-12-23 14 views
1

私は、Entity Framework 4.1とMySQLを使用するASP.NET MVC3 Webアプリケーションを開発しています。MVC3 + EF4 + MySQL System.Security.SecurityException:リクエストが失敗しました。

がローカルですべてがうまく動作しますが、私は、Webホストへのソリューションを展開するとき、それは私に次のエラーメッセージを表示します。

System.Security.SecurityException:要求が失敗しました。 System.Security.CodeAccessSecurityEngine.ThrowSecurityException(オブジェクト assemblyOrString、のPermissionSetが付与された時 System.Security.CodeAccessSecurityEngine.ThrowSecurityException(RuntimeAssembly ASM、のPermissionSetが付与された、のPermissionSetは拒否し、 RuntimeMethodHandleInternal RMH、SecurityActionアクション、オブジェクトの需要、 IPermission permThatFailed)で、のPermissionSetは、 System.Security.CodeAccessSecurityEngine.CheckSetHelper(のPermissionSet 助成金で RuntimeMethodHandleInternal RMH、SecurityActionアクション、オブジェクトの需要、 IPermission permThatFailedを)拒否した、のPermissionSetは、のPermissionSetの要求、 RuntimeMethodHandleInternal RMH、オブジェクトassemblyOrSを拒否しましたトリング、 System.Security.PermissionListSet.CheckSetDemandでSystem.Security.PermissionSetTriple.CheckSetDemand(のPermissionSet demandSet、のPermissionSet & alteredDemandset、 RuntimeMethodHandleInternal RMH)で SecurityAction作用、ブールThrowExceptionを()のPermissionSet PSET、 RuntimeMethodHandleInternal RMH) で System.Security.CodeAccessSecuで System.Security.CodeAccessSecurityEngine.ReflectionTargetDemandHelper(のInt32 許可、のPermissionSet targetGrant、CompressedStack SecurityContextが)でSystem.Security.PermissionListSet.DemandFlagsOrGrantSet(のInt32フラグ、 のPermissionSet grantSet) 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が中です。

アイデア?

+0

そして、localhostを指していないようにweb.configを変更したことを思い出しましたか?私が忘れてしまったたびにペニーがあれば、ペナンは約4枚あります。 –

答えて

2

完全に信頼できる別のホスティングプロバイダにいつでも切り替えることができますか?

2

新しいバージョンのコネクタを使用してください。それはreported as a bugであり、6.3.7および6.4.1で修正する必要があります。

+0

残念ながら、私はまだMySQL 6.4.4で同じエラーがあります。 – Colin

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パッケージマネージャを使用してインストールアプリケーションを再構築して実行することができます。

関連する問題