我正在开发一个侧载到Windows 8.1 Pro系统的LOB应用程序。我在Brokered Windows Runtime Components周围设置了我的环境,以允许Metro应用程序使用基于实体框架6的数据访问层 一切都编译得很好,但在运行时我得到:'System.Data.SqlClient.SqlPerformanceCounters'的类型初始值设定项引发异常。
错误讯息: 在AppContainer中运行时,不允许使用可写性能计数器。
我的DbContext类非常简单:
public class LOBContext: DbContext
{
public LOBContext():base(Properties.Settings.Default.NorthwindConnectionString){}
public DbSet<Employee> Employees { get; set; }
protected override void OnModelCreating(DbModelBuilder builder)
{
builder.Entity<Employee>()
.Map(p => p.ToTable("Employees"));
}
}
我知道AppContainer的隔离内容,但正是Brokered Runtime Component的目标应该是整理所有这些需要使用.net托管代码编写的遗留组件的进程间通信。那么为什么我会得到这个例外以及可以解决的问题呢?
编辑:其他信息
Package.appxmanifest文件:
<Extensions>
<Extension Category="windows.activatableClass.inProcessServer">
<InProcessServer>
<Path>clrhost.dll</Path>
<ActivatableClass ActivatableClassId="BrokeredRT.DataStub" ThreadingModel="MTA">
<ActivatableClassAttribute Name="DesktopApplicationPath" Type="string"
Value="c:\InstalledBrokeredComponents\" />
</ActivatableClass>
</InProcessServer>
</Extension>
</Extensions>