Winform应用程序由于System.Security.SecurityException无法启动

3

我的Windows窗体应用程序无法启动,因为出现了System.Security.SecurityException异常。这是Program.cs文件中的代码:

 [STAThread]
    static void Main()
    {

        Application.EnableVisualStyles();
        Application.SetCompatibleTextRenderingDefault(false);
        Application.Run(new BaseForm());
    }

以下是堆栈跟踪信息。
StackTrace:
       System.Security.CodeAccessSecurityEngine.Check(Object demand, StackCrawlMark& stackMark, Boolean isPermSet)
       System.Security.CodeAccessPermission.Demand()
       System.Windows.Forms.Application.add_ThreadException(ThreadExceptionEventHandler value)
       MyApp._0.Program.Main()

我不知道如何解决这个问题...欢迎提供任何提示。

你的表单启动中有什么内容? - BugFinder
2个回答

4
我曾经为了通过这个“安全异常”而苦苦挣扎。阅读了大量博客,参与了讨论,但都没有奏效。
最终在 MSDN 上找到了“启用 ClickOnce 安全设置”,我只需按照这些步骤禁用项目属性中的安全设置即可。
这里有一个链接,希望能对一些人有所帮助:http://msdn.microsoft.com/en-us/library/1sfbfyk0.aspx

2

自己解决。

检查我的项目app.config文件,追加了以下未知安全策略设置。

<runtime>
   <NetFx40_LegacySecurityPolicy enabled="true" />
</runtime>
<system.web>
<membership defaultProvider="ClientAuthenticationMembershipProvider">
  <providers>
    <add name="ClientAuthenticationMembershipProvider" type="System.Web.ClientServices.Providers.ClientFormsAuthenticationMembershipProvider, System.Web.Extensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" serviceUri="" />
  </providers>
</membership>
<roleManager defaultProvider="ClientRoleProvider" enabled="true">
  <providers>
    <add name="ClientRoleProvider" type="System.Web.ClientServices.Providers.ClientRoleProvider, System.Web.Extensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" serviceUri="" cacheTimeout="86400" />
  </providers>
</roleManager>
</system.web>

清除所有内容,然后在Visual Studio调试模式下启动winform应用程序。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接