2

ASP.NET Web プロジェクトに AIML ボットを実装しようとしていますが、次のエラーが発生し続けます。

指定されたファイルが見つかりません。

ソース エラー: 31 行目:
{

32 行目: myBot = new Bot();

33 行目: myBot.loadSettings(@"C:\Users\Public\Documents\SITE\bin\config");

34 行目: myUser = new User("DefaultUser", this.myBot);

35 行目: AIMLbot.Utils.AIMLLoader loader = new AIMLbot.Utils.AIMLLoader(this.myBot);

これが私のコードです:

protected void Page_Load(object sender, EventArgs e)
{
            myBot = new Bot();
            myBot.loadSettings(@"C:\Users\Public\Documents\SITE\bin\config");
            myUser = new User("DefaultUser", this.myBot);
            AIMLbot.Utils.AIMLLoader loader = new AIMLbot.Utils.AIMLLoader(this.myBot);
            this.myBot.isAcceptingUserInput = false;
            loader.loadAIML(@"C:\Users\Public\Documents\SITE\bin\aiml");
            this.myBot.isAcceptingUserInput = true;
}

ローカルホストで実行しているときに構成フォルダーが見つからないように思えますか? 私は何を間違っていますか?

4

2 に答える 2

1

これは古い投稿であることは知っていますが、他の誰かが同じ問題を抱えている場合に備えて、私の解決策を追加しています。

問題は、設定ファイルを指定していないことです。

次のようにしてみてください。

 myBot.loadSettings(@"C:\Users\Public\Documents\SITE\bin\config\Settings.xml");

ただし、アプリを展開する場合、ファイルから設定を読み込んでも、config フォルダー内の他の xml ファイルへのパスが同じになるため、問題は解決しません。

 return Path.Combine(Environment.CurrentDirectory, this.GlobalSettings.grabSetting("configdirectory"));

できることは、構成ディレクトリを追加するかC:\Windows\System32\inetsrv 、ソースコードをダウンロードしPathToConfigFilesて要件に合わせてプロパティを変更し、再構築してプロジェクトへの参照を再度追加することです。

プロパティを次のように変更しました。

  private string _pathToConfigFiles;
        public string PathToConfigFiles
        {
            get
            {
                return Path.Combine(this._pathToConfigFiles, this.GlobalSettings.grabSetting("configdirectory"));
            }
            set
            {
                this._pathToConfigFiles = value;
            }
        }

そして、ボットをインスタンス化すると、次のようになります。

   Bot myBot = new Bot();
   myBot.PathToConfigFiles = ConfigurationManager.AppSettings["AimlConfigPath"];
   myBot.loadSettings(ConfigurationManager.AppSettings["AimlSettingsPath"]);

「AimlConfigPath」D:\MyProject\binと「AimlSettingsPath」D:\MyProject\bin\config\Settings.xmlの両方がアプリの web.config ファイルに追加されている場所。

于 2015-07-07T12:34:26.967 に答える
0

どの Web プロジェクトでも、プロジェクト内にすべてのファイルを含め、それらのファイル ルートにアクセスすることをお勧めします。

  1. 両方とも@"C:\Users\Public\Documents\SITE\bin\config"プロジェクト@"C:\Users\Public\Documents\SITE\bin\aiml"内にある必要があります。(ページがフォルダー内にある場合の例です)。

ここに画像の説明を入力

  1. ServerMapPath でチルダ "~" または "../" を使用すると、プロジェクトの ROOT フォルダーに到達し、アクセスは次のようになります (たとえば、File.ReadAllLines("path") を使用してファイルにアクセスできました)。 ここに画像の説明を入力
  2. 結果 ここに画像の説明を入力

*注意: 再構築/デバッグの際は、再構築中に常に特殊ファイルを「常にコピーする」に設定してください。そうしないと、Web プロジェクトをデプロイするときにファイルが存在しなくなります。 ここに画像の説明を入力

于 2015-07-07T15:36:01.143 に答える