Я получаю ниже Необработанное исключение при запуске моего приложения chatbot в окне вывода.Необработанные исключения при запуске в моем проекте C#
Exception thrown: 'System.UnauthorizedAccessException' in mscorlib.dll
Exception thrown: 'System.Globalization.CultureNotFoundException' in mscorlib.dll
Exception thrown: 'System.Security.SecurityException' in mscorlib.dll
Exception thrown: 'System.BadImageFormatException' in mscorlib.dll
Exception thrown: 'System.ArgumentNullException' in mscorlib.dll
Exception thrown: 'System.IO.FileNotFoundException' in mscorlib.dll
Exception thrown: 'System.IO.FileNotFoundException' in mscorlib.dll
У меня есть что-то в моем MessageController
public class MessagesController : ApiController
{
private static NLog.Logger logger = NLog.LogManager.GetCurrentClassLogger();
private static DocumentClient client;
// Retrieve the desired database id (name) from the configuration file
private static readonly string databaseId = ConfigurationManager.AppSettings["DatabaseId"];
// Retrieve the desired collection id (name) from the configuration file
private static readonly string collectionId = ConfigurationManager.AppSettings["CollectionId"];
// Retrieve the DocumentDB URI from the configuration file
private static readonly string endpointUrl = ConfigurationManager.AppSettings["EndpointUri"];
// Retrieve the DocumentDB Authorization Key from the configuration file
private static readonly string authorizationKey = ConfigurationManager.AppSettings["PrimaryKey"];
/// <summary>
/// POST: api/Messages
/// Receive a message from a user and reply to it
/// </summary>
public async Task<HttpResponseMessage> Post([FromBody]Activity activity)
{
Trace.TraceInformation($"Type={activity.Type} Text={activity.Text}");
//disable the Application Insights and DocumentDb logging in local enviornment
#if (LOCAL)
Microsoft.ApplicationInsights.Extensibility.TelemetryConfiguration.Active.DisableTelemetry = true;
#endif
#if (!LOCAL)
if (!String.IsNullOrEmpty(endpointUrl) && !String.IsNullOrEmpty(authorizationKey))
{
using (client = new DocumentClient(new Uri(endpointUrl), authorizationKey))
{
await CaptureConversationData(activity);
}
}
#endif
if (activity.Type == ActivityTypes.Message)
{
//await Microsoft.Bot.Builder.Dialogs.Conversation.SendAsync(activity,() => new ContactOneDialog());
//Implementation of typing indication
//ConnectorClient connector = new ConnectorClient(new System.Uri(activity.ServiceUrl));
//Activity isTypingReply = activity.CreateReply("Shuttlebot is typing...");
//isTypingReply.Type = ActivityTypes.Typing;
//await connector.Conversations.ReplyToActivityAsync(isTypingReply);
logger.Debug("The User's local timeStamp is: " + activity.LocalTimestamp + "and service timeStamp is: " + activity.Timestamp);
await Conversation.SendAsync(activity,() =>
new ExceptionHandlerDialog<object>(new ShuttleBusDialog(), displayException: true));
}
else
{
HandleSystemMessage(activity);
}
var response = Request.CreateResponse(System.Net.HttpStatusCode.OK);
return response;
}
}
Он бросил на первой линии
private static NLog.Logger logger = NLog.LogManager.GetCurrentClassLogger();
Одна weired вещь, что если мой проект запускается из C: \ Users \\ chatbot \ Mybot .. , тогда это исключение не будет выбрано, даже если бы я установил параметр исключения перерыва в окне настройки исключения. , но если я переведу проект в c: \ Sandy \ MyStuff \ ChatbOt \ MyBot, он запустил все это исключение, так как я установил параметр исключения перерыва в окне настройки исключения.
Я серьезно не могу понять, в чем проблема.
Я думаю, это может быть связано с вашими ссылками на упомянутые DLL. Убедитесь, что для этих библиотек «скопировать локальную» установлено значение «true» и перестроить ее один раз после перехода в новую папку. –
Попробуйте использовать MSDN, просто введите google свое исключение и перейдите по ссылке. Здесь описаны все ошибки. 'FileNotFound' - потому что некоторые файлы не найдены. 'ArgumentNull' - потому что в этой строке некоторые аргументы равны нулю (проверьте, что App.Config содержит все конфиги, которые вы используете в коде). 'BadImageFormat' - означает, что один из файлов dll/exe на том, что у вас есть ссылка, был скомпилирован с другой версией фреймворка, и вы используете последнюю версию в проекте. – Sergio
И о «Перемещено в другую папку». Проверьте все пути в ссылках на проекты. Особенно со статическими путями, сделайте так, чтобы они существовали на этом пути. – Sergio