2017-01-19 20 views
3

私はPetapocoのマルチポコクエリを使用しようとしています。Petapoco:オペレーションはランタイムを不安定にする可能性があります

コードは、.NET 4.6.1を実行している私のローカルマシン上で正常に動作しますが、私は.NET 4.5を実行している使用していますホスティングに展開するときSystem.Security.VerificationExceptionをスローします。 PetaPoco/Database.cs:2253

while (true) 
{ 
    TRet poco; 
    try 
    { 
     if (!r.Read()) 
      break; 
     poco = factory(r, cb); // <-- The exception happens here 
    } 
    catch (Exception x) 
    { 
     if (OnException(x)) 
      throw; 
     yield break; 
    } 

    if (poco != null) 
     yield return poco; 
    else 
     bNeedTerminator = true; 
} 

「CB」から

SnipppetはPOCOSをマッピングするためのコールバックですが、私はそれだけで経由して来たオブジェクトを返す作られた引数のために:

public Person MapRow(Person person, Category category, Country country) { 
    return person; 
} 

db.Query<Person>(
    new[] { typeof(Person), typeof(Category), typeof(Country) }, 
    new PersonRelator().MapRow, 
    sql 
); 

は、私はこのようなメソッドを呼び出しています3210

この例外がスローされる理由の手がかりは?

+0

「動作がランタイムを不安定にする可能性がある」と推測しているのは、.NET FrameworkやJITコンパイラのバグを示しています。信頼できないコードを実行しようとするだけではエラーにならないでしょう。あなたは右の "関連"サイドバーの関連する質問を閲覧することができますが、私はあなたのベスト・ベットが64ビットOSにアップグレードするためにあなたのWebホストを取得しようとするかもしれないと推測しています.NET 4.6.1をインストールし、問題が解決するかどうか確認してください。 –

答えて

2

これは、ホスティング環境が中程度の信頼に設定されているためです。通常の操作ではPetaPocoがILコードを生成するため、中程度の信頼性の高いホスティング環境では許可されず、例外がスローされます。

+0

「オペレーションによってランタイムが不安定になる可能性があります」というエラーメッセージが表示されることはありません。そのエラーは何かが本当に間違っていたことを意味します。 –

+1

「中」の信頼から「完全な」信頼に変更すると、それは魅力的なものになりました! (それを高く設定しても十分かもしれません)。 – AndreFeijo

関連する問題