2011-02-28 19 views
0

我使用Entity Framework構建了MVC 2應用程序(ASP.net 3.5),並且正在使用LINQ進行查詢。我正在嘗試部署到共享主機(1 & 1)。我知道的唯一(可能)相關限制是他們不允許非託管代碼,儘管我沒有使用任何我知道的。使用LINQ to Entities時的安全異常

這裏是我的堆棧跟蹤的最後幾行:

[SecurityException: Request for the permission of type 'System.Security.Permissions.SecurityPermission, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089' failed.] 
System.Data.Objects.LightweightCodeGenerator.ValidateSetterProperty(RuntimeMethodHandle setterMethodHandle, MethodInfo& setterMethodInfo, Type& realType) +28 
System.Data.Common.Internal.Materialization.Translator.CreatePropertyBindings(StructuredColumnMap columnMap, Type clrType, ReadOnlyMetadataCollection`1 properties) +142 
.... 

我沒有我的應用程序設置爲完全信任的選項。

我現在的問題是這樣的:在我的環境中是否仍然可以使用Linq-to-entities?如果不是,那麼還有哪些替代方案需要最少的返工?實體框架爲我處理驗證等事情,所以我不想放棄它。

+0

你的非託管代碼是什麼樣的? – 2011-02-28 18:14:29

+0

我沒有我知道的非託管代碼,但這是我的主機明確聲明我認爲可能相關的唯一限制。我用我的堆棧跟蹤的最後幾行更新我的帖子。我覺得這可能會有所幫助。 – 2011-03-01 14:28:09

+0

我最終選擇的解決方案是使用Linq-to-SQL。它不需要與Linq-to-Entities相同的服務器權限,並且我能夠保留大部分代碼(最重要的是,通過數據註釋進行驗證)。在Linq-to-SQL中更新外鍵也更簡單。 – 2011-03-02 15:02:12

回答

0

如果您到此處:http://msdn.microsoft.com/en-us/library/cc716760.aspx並搜索完全信任的單詞,您將看到EF在部分信任模式下需要運行的所有基本權限。

+0

我確實遇到過,並通過電子郵件將其鏈接到我的託管服務提供商。我不確定他們是否允許這些事情。我有他們的.config文件的副本,但我不知道如何解釋他們對MS鏈接。 – 2011-02-28 20:44:01