2016-04-19 13 views
0

私が何かを言う前に - はい、これまでのこの質問のすべてを、X86/X64モードでのビルドなどについて読んだことがあります。私は最近、PCを変更し、再び自分の環境を設定しました。このコードは、Silverlightアプリケーション内のレポートサービスからのものです。 Silverlightアプリケーションはすべてうまく構築され、okも公開されています。レポートのセクションのどこかで、うまくやってみたくないような小さなエラーがいくつかあるようです。呼び出しの対象によって例外がスローされました - 不正な形式のプログラムをロードしようとしました。 DbGeography

double Latitude = (double) parameters["GeofenceLatitude"]; 
double Longitude = (double) parameters["GeofenceLongitude"]; 
double Radius = (double) parameters["GeofenceRadius"]; 
DbGeography Geofence = GetPointFromLatLong(Latitude, Longitude); 

Geofence = Geofence.Buffer(Radius); 

だから、すべてが正常に動作し、GetPointFromLatLong方法(カスタム1)は、しかし.Buffer(Radius)は、以下の詳細な例外が発生し、正しいDbGeographyオブジェクトを返します。

のInnerException = {「試みが(HRESULTからの例外:0x8007000B)誤った形式でプログラムをロードしました。」} =「呼び出しのターゲットが例外をスローされた

メッセージ。 "

ソース= "mscorlib"

のStackTrace =「System.RuntimeMethodHandle.InvokeMethodでSystem.Reflection.RuntimeMethodInfo.UnsafeInvokeInternal(オブジェクトOBJ、オブジェクトに(オブジェクト・ターゲット、[]引数、署名SIG、ブールコンストラクタオブジェクト) System.Reflection.MethodBase.Invoke(Object obj、Object []])でSystem.Reflection.RuntimeMethodInfo.Invoke(Object obj、BindingFlags invokeAttr、バインダバインダ、Object []パラメータ、CultureInfoカルチャ)の[]パラメータ、Object []引数)パラメータ)をGpsSilverlight.Web.Reports.ReportService.OnLoadData(IDictionary`)のSystem.Data.Entity.Spatial.DbGeography.Buffer(Nullable distance)のSystem.Data.Entity.SqlServer.SqlSpatialServices.Buffer(DbGeography geographyValue、Double distance)に設定します。 2つのパラメータ、文字列reportName、ReportSlot r eportSlot)in PROJECT:行1514 "

私はここで何が起こっているのか分かりません。誰にもこれに関する経験はありますか?

static DbGeography GetPointFromLatLong(double Latitude, double Longitude) 
    { 
     DbGeography geogTest; 
     geogTest = DbGeography.PointFromText(string.Format("POINT({1} {0})", Latitude.ToString(), Longitude.ToString()), 4326); 

     return geogTest; 
    } 
+0

あなたはそれをすべて読んでいると言っていますが、とにかくConfiguration Managerをチェックしましたか?ときには、ソリューションの構成が乱れている、特にあなたがPCを変更する/リポジトリを再作成する... – Mat

+0

うん、同じ! http://i.imgur.com/2rIUjqG.png – Seb

+0

デバッグするときに、エラーの詳細について内部例外がありますか? 'GetPointFromLatLong'メソッドを表示する – Nkosi

答えて

0

この例外がスローされる最も一般的な問題は、CLRが32/64ビットモードで実行されていて、64/32ビット・モード用にコンパイルされたアセンブリをロードしようとしていることです。

時々、ソリューション、プロジェクト、設定の設定が少し混乱し、あなたの思うようにバイナリを生成しないことがあります。

あなたのアセンブリを構築するためにコンパイラが本当に行ったことを検証する最良の方法は、それらを逆アセンブルしてすべてのバイナリのアセンブリマニフェスト情報を調べることです。多くの場合、1つのアセンブリは、必要と思われる構成では構築されません。

このタイプの問題は、時には時々バグして、逆アセンブルすると通常役立ちます。

関連する問題