1

どこかでホストされているアプリケーション(webhostingworld.net)があり、ジレンマがあります。オフライン処理を実行するツール(.net 4 anycpuの単純なプレーンexe)があり、「ParallelPleskPanel11.0.9」によって「スケジュールされたタスク」として開始されます。ジェネリックメソッドを追加するまで、すべてうまくいきました。

  • 基本的に、これはデータベースからjson文字列を読み取り、それを返す単なるダミーメソッドです。
  • プロセスは終了するだけで、例外はスローされません。ログを場所から場所へと配置する必要がありました。最後に行ったのは、このメソッドとその中の最初のメソッドを呼び出す前にログを配置することでした。このメソッドを呼び出す前のロギングはありますが、メソッド内のロギングはありません。
  • メソッド宣言は次のようになります。

public T Get<T>(string id);

  • 私は彼らにいくつかのフィードバックを求めるために連絡しました-多分彼らはシステムログで何かを見たかもしれませんが、彼らがいくらかの光をもたらすとは思えません。
  • 私のコンピューターでは正常に動作します(常にこのように発生するのではありませんか?)。
  • すべてのCPUフレーバー(x86、x64、anyCPU)でコンパイルしようとしましたが、同じ動作をします...

私はideeasを使い果たしました。私はいつでも汎用オブジェクトを使おうと試みることができます(おそらくこれはコードサイズのpovからより良いアイデアかもしれません-しかしこれは別の主題です)...しかしこれが起こっている理由を見つけることができなかったのでそれはかなりイライラします...では、何が起こっているのかについてのアイデアはありますか?

ありがとう!

更新:コードは次のようになります:

public T Get<T>(string id)
{
   Log.Debug("mary still has that little lamb");

   string jsonString = GetASimpleStringFromDatabase(id);  // id has values like "ID", "TEMPPATH", "MAIL", etc;

   DataContractJsonSerializer ser = new DataContractJsonSerializer(typeof(T));

   using (MemoryStream ms = new MemoryStream(Encoding.UTF8.GetBytes(jsonString)))
   {
      return ser.ReadObject(ms);
   }
}

そして、呼び出しは次のようになります。

Log.Debug("Let's check if Mary has that little lamb");
MyClass c = deserializer.Get<MyClass>(stuff);

最初のロギングステートメントが表示され(「確認しましょう」)、2番目のステートメントは表示されません(「まだあります」)。.netフレームワークは、私のマシン上のフレームワークと同じです(少なくともバージョンに関係する点では)。確認する必要のあるフラグがあるかどうか疑問に思っています...

更新:申し訳ありませんが、サポートの担当者は応答が非常に遅いです。これについては答えがありません。'テンプレート'なしで残しておきます。:-(

4

2 に答える 2

0

ユーザーは「クライアント」.Net4.0ランタイムのみをインストールしている可能性があり、「フル」.Net4.0ランタイムを必要とする機能を使用している可能性があります。 違いの詳細については、こちらをご覧ください。

また、未処理の例外イベントにフックして、エラーをログに記録することもできます。 デスクトップアプリの場合はこれを、Webアプリの場合はこれを参照してください。

他のすべてが失敗した場合は、アプリケーションの下位層をスタブアウトして、通信やその他の原因を除外することができます。(つまり、データベース呼び出しを、ハードコードされたJSON文字列を返すモックデータベースへの呼び出しなどに置き換えます)

于 2012-10-14T07:48:48.733 に答える
0

コンパイラは、検証に合格しないコードを生成することがあります。これが発生した場合、コードが完全に信頼されていないと、このような問題が発生する可能性があります (この場合の可能性が高い)。PEVerify を実行して、コードが検証可能であることを確認します。

于 2012-10-14T08:34:44.883 に答える