2012-01-18 11 views
0

このコードはLinux上のasp.netアプリケーションで動作します。コードは私のサービスの1つを呼び出します。 (現在、WCFはモノラルでは動作しません。そのため、私はasmxを使用しています)。このコードは、Windowsから(デバッグ中に)実行しているときにASENDEDEDとして機能します。 Linuxにデプロイすると、すぐに動作しなくなります。私は間違いなく困惑している。私は徹底的にサービスをテストしており、サービスは正常です。 オブジェクト参照がオブジェクトasp.netアプリ呼び出しサービスは、初期化されていないと言いますか?

のインスタンスに設定されていない:(NewVisitorは3つの文字列を取るvoid関数である)

//This does not work. 
try 
{ 
    var client = new Service1SoapClient(); 
    var results = client.NewVisitor(Request.UserHostAddress, Request.UrlReferrer == null ? String.Empty : Request.UrlReferrer.ToString(), Request.UserAgent); 
    Logger.Debug("Result of client: " + results); 
} 

ここでエラーが生成される:ここ

はエラーを生成するコードでありますここ

は完璧に動作するコードです:

//This works (from the service) 
[WebMethod(CacheDuration = _cacheTime, Description = "Returns a List of Dates", MessageName = "GetDates")] 
public List<MySqlDateTime> GetDates() 
{ 
    return db.GetDates(); 
} 

//Here is the code for the method above 
var client = new Service1Soap12Client(); 
var dbDates = client.GetDates(); 

私はオブジェクトではないことを言っている理由を把握してみたいですセット。

方法が試み:

  1. 新しいSOAPクライアントを。
  2. バインディングとエンドポイントアドレスが指定された新しいSOAPクライアント
  3. チャネルを作成して開くために使用されるチャネルファクトリ。

さらに詳しい情報が必要な場合は、私はもっと与えることができます。私はアイデアがありません。

+0

NullReferenceExceptionスタックトレースの先頭がコードを指していますか?そして、どのオブジェクトがnullですか? –

+0

var client = new Service1SoapClient();ヌルのオブジェクトです。私は異なる形式で同じコード行を使用していて、うまく動作するので、私には意味がありません。 – Brent

+0

'client'変数をnullにすることはできません(C#仕様に違反します)。おそらく、GetDatesの一部のコードがNullReferenceExceptionをスローしていることが起こります。完全なスタックトレースが役立つことがわかります。 –

答えて

0

モノのバグのようです。 file a bugを再現可能なテストケースで修正する必要があります(したがって、使用可能な回避策が見つかる可能性があります)。

0

残念ながら、私はそれをテストするためのLinuxを持っていないが、私はあなたが使用して()文でクライアント変数を置くことをお勧めしたい:

using(var client = new Service1SoapClient()) 
{ 
    var results = client.NewVisitor(Request.UserHostAddress, Request.UrlReferrer == null ? 
         String.Empty : Request.UrlReferrer.ToString(), Request.UserAgent); 
    Logger.Debug("Result of client: " + results); 
} 

私はそれが役に立てば幸い。

RC。

+0

Linuxからテストされ、まだサイコロはありません。 – Brent

関連する問題