2016-04-04 14 views
0

コンソールアプリケーションからWebアプリケーションに存在する関数を呼び出そうとするときに問題が発生しています。問題を引き起こしている同じソリューションでコンソールプロジェクトからWebプロジェクト関数を呼び出すC#

私のソリューションは、二つのプロジェクト 私のソリューション ている - Webプロジェクト - コンソールプロジェクト

私は使用しています私のウェブPorjectのコード

namespace testConsoleApp 
{ 
    class mainClass 
    { 
     static void Main(string[] args) 
     { 
      Console.WriteLine("Hi"); 

      try 
      { 
       outlookRoomBooking objOutlook = new outlookRoomBooking(); 
       objOutlook.updateStatus(); 
      } 
      catch(Exception ex) 
      { 
       Console.WriteLine(ex.Message); 
      } 
      Console.WriteLine("cron completed."); 
      Console.ReadKey(); 
     } 
    } 
} 

Webプロジェクト関数を呼び出す私のコンソールアプリケーションのコードを

namespace LVIS.includes 
{ 
    public class outlookRoomBooking 
    { 

     private string user = ConfigurationManager.AppSettings["user"].ToString(); 
     private string passowrd = ConfigurationManager.AppSettings["passowrd"].ToString(); 

     //Some more codes here // 
    } 
} 

コンソールアプリケーションを実行すると、「object refオブジェクトのインスタンスに設定されていません "コントロールがWebアプリケーションのクラス、つまり最初の行に入るとき private string user = ConfigurationManager.AppSettings [" user "]。ToString();

私はコンソールプロジェクトでwebプロジェクトのweb.configのリンクリファレンスを追加しました。

コンソールアプリケーションから呼び出されると、クラスがConfigurationManager.AppSettingsにアクセスできないようです。クラスは、同じWebプロジェクトから呼び出されたときに正常に動作します。

答えて

1

私は、コンソールアプリケーションを実行すると、コントロールが私の Webアプリケーションのクラスに入ったとき、私は「オブジェクトのインスタンスへのオブジェクト参照ではない セット」のエラーが表示されますつまり、最初の行のプライベート文字列のユーザ= ConfigurationManager.AppSettings ["user"]。ToString();おそらく

全体のWebアプリで<appSettings>存在は、あなたのコンソールアプリケーションのapp.configには存在しないからです。

アプリケーション設定は、アプリケーションのベースディレクトリにあるアプリケーション設定ファイル(つまり、web.configまたはapp.config)からロードされます。あなたの場合、コンソールアプリケーションの基本アプリケーションディレクトリは実行ファイルの場所です。

TL; DRバージョンweb.configからコピー&ペーストアプリケーションの設定コンソールアプリのapp.configへ。

+0

ありがとう@Matias、それはこのように働いていましたが、私のWebアプリケーションでは、2つの場所で.configファイルを維持するのを避けるために、私のコンソールアプリケーションのweb.configに "リンクを追加"を使用しましたが、 – Chandikumar

+0

@Chandikumar私は、うーん、あなたが問題を解決してうれしいことを参照してください;) –

関連する問題