2011-12-24 8 views
0

Мое приложение прекрасно работает, когда версия Net не была Net4. Он продолжает работать отлично, если я создаю новый сервер под управлением Windows 7 с нуля. Настройте разрешения и пройдите.Csla4 и Net4 - разрешено разрешение ASPNET на клиенте

Но (и всегда есть ...), у моего клиента есть существующий сервер, на котором приложение даже не запускается, когда я перехожу на Csla4 и Net4. Все разрешения кажутся одинаковыми на моем «чистом» сервере и на его «устаревшем, но обновленном» сервере. Но клиент получает ошибку безопасности:

System.Security.SecurityException: Request failed. 
    at System.RuntimeMethodHandle.PerformSecurityCheck(Object obj, RuntimeMethodHandleInternal method, RuntimeType parent, UInt32 invocationFlags) 
    at System.RuntimeMethodHandle.PerformSecurityCheck(Object obj, IRuntimeMethodInfo method, RuntimeType parent, UInt32 invocationFlags) 
    at System.Reflection.RuntimeConstructorInfo.Invoke(BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture) 
    at System.Reflection.ConstructorInfo.Invoke(Object[] parameters) 
    at System.Configuration.TypeUtil.InvokeCtorWithReflectionPermission(ConstructorInfo ctor) 
    at System.Configuration.RuntimeConfigurationRecord.RuntimeConfigurationFactory.CreateSectionImpl(RuntimeConfigurationRecord configRecord, FactoryRecord factoryRecord, SectionRecord sectionRecord, Object parentConfig, ConfigXmlReader reader) 
    at System.Configuration.RuntimeConfigurationRecord.RuntimeConfigurationFactory.CreateSectionWithRestrictedPermissions(RuntimeConfigurationRecord configRecord, FactoryRecord factoryRecord, SectionRecord sectionRecord, Object parentConfig, ConfigXmlReader reader) 
    at System.Configuration.RuntimeConfigurationRecord.CreateSection(Boolean inputIsTrusted, FactoryRecord factoryRecord, SectionRecord sectionRecord, Object parentConfig, ConfigXmlReader reader) 
    at System.Configuration.BaseConfigurationRecord.CallCreateSection(Boolean inputIsTrusted, FactoryRecord factoryRecord, SectionRecord sectionRecord, Object parentConfig, ConfigXmlReader reader, String filename, Int32 line) 
The action that failed was: 
Demand 
The type of the first permission that failed was: 
System.Security.PermissionSet 
The demand was for: 
<PermissionSet class="System.Security.PermissionSet" 
version="1" 
Unrestricted="true"/> 

The only permitted permissions were: 
<PermissionSet class="System.Security.NamedPermissionSet" 
version="1" 
Name="Internet" 
Description="Default rights given to Internet applications"> 
<IPermission class="System.Security.Permissions.FileDialogPermission, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" 
version="1" 
Access="Open"/> 
<IPermission class="System.Security.Permissions.IsolatedStorageFilePermission, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" 
version="1" 
Allowed="ApplicationIsolationByUser" 
UserQuota="1024000"/> 
<IPermission class="System.Security.Permissions.SecurityPermission, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" 
version="1" 
Flags="Execution"/> 
<IPermission class="System.Security.Permissions.UIPermission, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" 
version="1" 
Window="SafeTopLevelWindows" 
Clipboard="OwnClipboard"/> 
<IPermission class="System.Drawing.Printing.PrintingPermission, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" 
version="1" 
Level="SafePrinting"/> 
<IPermission class="System.Security.Permissions.MediaPermission, WindowsBase, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" 
version="1" 
Audio="SafeAudio" 
Video="SafeVideo" 
Image="SafeImage"/> 
<IPermission class="System.Security.Permissions.WebBrowserPermission, WindowsBase, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" 
version="1" 
Level="Safe"/> 
</PermissionSet> 

The method that caused the failure was: 
System.Object CreateSectionWithRestrictedPermissions(System.Configuration.RuntimeConfigurationRecord, System.Configuration.FactoryRecord, System.Configuration.SectionRecord, System.Object, System.Configuration.ConfigXmlReader) 

Я изучаю изменения в безопасности ASPNET в NET4, и я thorougly запутаться.

Неужели кто-нибудь еще сталкивается с этой проблемой и может указать мне в правильном направлении? Повторяю, приложение отлично работает в удаленной среде, которую я создаю с нуля, но не на обновленном устаревшем сервере.

ответ

0

Я думаю, что сервер настроен для «Medium Trust» в файле web.config или около того. Насколько мне известно, CSLA требует «полного доверия» для клонирования бизнес-объектов.

Если это не проблема и может попытаться добавить сервер в доверенную зону клиента в registory окна под

[HKEY_CURRENT_USER \ Software \ Microsoft \ Windows \ CurrentVersion \ Internet Settings \ ZoneMap]

для получения дополнительной информации u можете перейти на http://blogs.technet.com/b/heyscriptingguy/archive/2005/05/02/how-can-i-add-a-site-to-internet-explorer-s-restricted-sites-zone.aspx