تشغيل تجميعات .NET "الموثوقة جزئيًا" من مشاركة عبر الشبكة

StackOverflow https://stackoverflow.com/questions/24468

  •  09-06-2019
  •  | 
  •  

سؤال

عندما أحاول تشغيل تجميع .NET (boo.exe) من مشاركة عبر شبكة (تم تعيينها إلى محرك أقراص)، فإنها تفشل نظرًا لأنها موثوقة جزئيًا فقط:

Unhandled Exception: System.Security.SecurityException: That assembly does not allow partially trusted callers.
   at System.Security.CodeAccessSecurityEngine.ThrowSecurityException(Assembly asm, PermissionSet granted, PermissionSet refused, RuntimeMethodHandle rmh, SecurityAction action, Object demand, IPermission permThatFailed)
   at BooCommandLine..ctor()
   at Program..ctor()
   at ProgramModule.Main(String[] argv)
The action that failed was:
LinkDemand
The assembly or AppDomain that failed was:
boo, Version=0.0.0.0, Culture=neutral, PublicKeyToken=32c39770e9a21a67
The Zone of the assembly that failed was:
Intranet
The Url of the assembly that failed was:
file:///H:/boo-svn/bin/boo.exe

بتعليمات من مشاركة مدونة, لقد أضفت سياسة إلى تكوين .NET وأثق تمامًا في جميع التجميعات file:///H:/* كعنوان URL الخاص بهم.لقد تحققت من ذلك عن طريق إدخال عنوان URL file:///H:/boo-svn/bin/boo.exe داخل ال تقييم الجمعية في تكوين .NET ولاحظ أن boo.exe يحتوي على ملحق غير مقيد إذن (الذي لم يكن لديه قبل السياسة).

حتى مع الإذن، boo.exe لا يعمل.أنا لا يزال الحصول على نفس رسالة الخطأ.

ماذا يمكنني أن أفعل لتصحيح هذه المشكلة؟هل هناك طريقة أخرى لتشغيل التجميعات "الموثوقة جزئيًا" من مشاركات الشبكة دون الحاجة إلى تغيير شيء ما لكل تجميع أريد تشغيله؟

هل كانت مفيدة؟

المحلول

باستخدام .NET 3.5 SP1، تتمتع تجميعات .NET التي يتم تشغيلها من مشاركات UNC بالأذونات الكاملة.

انظر براد أبرامز السماح بتشغيل .exes من خلال مشاركات الشبكة للحل والمناقشات، وأخيرا المتابعة يسمح .NET 3.5 SP1 بتشغيل التعليمات البرمجية المُدارة من مشاركة عبر الشبكة.

نصائح أخرى

لقد قمت بحل المشكلة باستخدام caspol وفقًا للتعليمات الواردة في مدونة جوني هيوز تشغيل تطبيق .Net من مشاركة عبر الشبكة:

caspol -addgroup 1.2 -url file:///H:/* FullTrust

يبدو أن واجهة المستخدم الرسومية لتكوين .NET لإدارة السياسات لا تعمل ببساطة.

قم بإلقاء نظرة على برنامج 'caspol.exe' (المزود بأوقات تشغيل .NET).سيتعين عليك القيام بذلك على الجهاز الذي تحاول تشغيل التطبيق منه.لم أتمكن من "وضع علامة" والتجميع (ربما أنا فقط).ومع ذلك، باستخدام caspol وإعداد الإذن المناسب لتطبيقي، LocalIntranet_Zone، أصلح مشكلتي المشابهة.

لقد سمعت (لكنني لم أجربه بعد)، أن .NET 3.5 sp1 أزال متطلبات الأمان المشددة هذه (لا يسمح بتجميعات .NET بالتواجد على المشاركة بشكل افتراضي).

أعتقد أنك تريد إضافة السماح للمتصلين الموثوق بهم جزئيًا سمة إلى الجمعية الخاصة بك.تشير رسالة الخطأ إلى أن الشيء الذي يتصل بتجميع boo.exe الخاص بك غير موثوق به بشكل كامل، وأن boo.exe لا يحتوي على هذه السمة التي تسمح بذلك.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top