2017-02-02 14 views
0

Я получаю ниже Необработанное исключение при запуске моего приложения 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(); 

здесь снимок Exceptione, exception2

Одна weired вещь, что если мой проект запускается из C: \ Users \\ chatbot \ Mybot .. , тогда это исключение не будет выбрано, даже если бы я установил параметр исключения перерыва в окне настройки исключения. , но если я переведу проект в c: \ Sandy \ MyStuff \ ChatbOt \ MyBot, он запустил все это исключение, так как я установил параметр исключения перерыва в окне настройки исключения.

Я серьезно не могу понять, в чем проблема.

+0

Я думаю, это может быть связано с вашими ссылками на упомянутые DLL. Убедитесь, что для этих библиотек «скопировать локальную» установлено значение «true» и перестроить ее один раз после перехода в новую папку. –

+0

Попробуйте использовать MSDN, просто введите google свое исключение и перейдите по ссылке. Здесь описаны все ошибки. 'FileNotFound' - потому что некоторые файлы не найдены. 'ArgumentNull' - потому что в этой строке некоторые аргументы равны нулю (проверьте, что App.Config содержит все конфиги, которые вы используете в коде). 'BadImageFormat' - означает, что один из файлов dll/exe на том, что у вас есть ссылка, был скомпилирован с другой версией фреймворка, и вы используете последнюю версию в проекте. – Sergio

+0

И о «Перемещено в другую папку». Проверьте все пути в ссылках на проекты. Особенно со статическими путями, сделайте так, чтобы они существовали на этом пути. – Sergio

ответ

0

Попробуйте запустить свою визуальную студию в качестве администратора или запустите приложение в качестве администратора и убедитесь, что все DLL, от которых зависит ваш проект, находятся на новом пути.

+0

работает визуальная студия, так как администратор отлично работает, я пробовал раньше, но просто хотел узнать актуальную проблему. – Sandy

+0

Я думаю, может быть, потому, что путь «C: \» имеет разные разрешения, чем «C: \ Users» –