0

私は次のコードを持っています:

public class A: IContract, ...
{
    private B b = new B(); 
    // contract method
    public string MethodA(string p1, string p2)
    {
        Log("Start");
        SomeObject obj = CreateObj(p1, p2);
        Log("Before Send");
        string result = b.SendToExternalSth(obj);
        // do sth
        return result;
    }
}

public class B
{
    public string SendToExternalSth(SomeObject obj)
    {
        Log("BEGIN");
        string a, b;
        a = proxy.Send(obj);
        // do sth
        Log("End");
        return a;
    }
}

の行Before Sendが実行された後、空のメッセージが表示され、例外のスタック トレースはメソッドSystem.Exceptionを閉じる行を指しています。}SendToExternalSth

なぜそれが起こっているのか、何か考えはありますか?私はそれを言及する必要があります:

  • これは本番環境でのみ発生します (ローカルおよびテスト環境で動作します)。
  • コードは c# - .net 4.0 です。
  • このコードは、IIS 7.0 でホストされている SOAP Web サービス コードの一部です (MethodAは SOAP アクションであり、SendToExternalSthメソッドは他のクラスの内部メソッドです)。
  • 「any cpu」オプションでビルドしていますが、
  • Debug本番環境にビルドをデプロイしていますが、
  • 本番環境とテスト環境の両方が 64 ビット Windows 2008 r2 sp1 であり、
  • .net 4 フレームワークは両方に同じバージョンでインストールされ、
  • テスト環境と比較して、実稼働サーバーには Microsoft .NET Framework 4 Multi-Targeting Pack コンポーネントがありませんが、現在そこにインストールすることはできません。

この問題を解決するためにさらに情報が必要な場合はお知らせください。喜んで提供させていただきます。

4

1 に答える 1

0

さらにデバッグコードを記述し、コンパイルオプションを数回変更しました。次に本番環境にデプロイした後、このエラーは発生しませんでした。これはオプションに関連するコンパイルの問題だったと思いAny CPUますが、これは単なる推測です。

于 2012-10-04T15:28:56.903 に答える