Ответы пользователя по тегу Visual Studio
  • Как удалить расширение (extensions) из Visual Studio?

    AlexXYZ
    @AlexXYZ
    O Keep Clear O
    Насколько я понимаю увиденное - не похоже, чтобы это расширение у вас установлено. Отображаемый список - это только список плагинов, которые вы можете перемещать по своим рабочим местам.
    Ответ написан
    Комментировать
  • Как выбирать расположение пакетов?

    AlexXYZ
    @AlexXYZ
    O Keep Clear O
    К сожалению - никак:
    https://social.msdn.microsoft.com/Forums/en-US/3e7...
    Note: this won't change location of all files, but only of those which can be (by design) installed onto different location. Be warned that there is many shared components which will be installed into shared repositories on drive C: without any possibility to change their path
    Ответ написан
    Комментировать
  • Как установить NuGet пакет?

    AlexXYZ
    @AlexXYZ
    O Keep Clear O
    У нас на работе тоже весь трафик в инет проходит через корпоративный прокси (squid). С аутентификацией ntlm. Я настроил себе cntlm и заворачиваю на него fiddler. Всем свои программкам, которых хотят что-то качать с инета обновления или пакеты какие (maven, nuget, linux-updates и пр.) прописываю прокси на свой fiddler и они качают с инета уже без аутентификации.


    f6447dcc6b004b57ba9783aa8a90b5c5.png


    Если у вас не используется ntlm-аутентификация на прокси, то можно исключить cntlm и попробовать работать только через fiddler. В этом случае ваш fiddler выглядит как "кран", через который видно весь трафик по которому ваши програмки ходят в инет.

    P.S.
    Для Visual Stidio будет достаточно, если вы просто включите fiddler (F12) в режим проксирования. VS подхватывает системный прокси, который fiddler перехватывает на себя и идёт в инет уже через fiddler и его nuget нормально скачивает пакеты и обновления.
    P.P.S.
    Иногда cntlm сбоит и его службу надо перезапускать. Не очень надёжный, но и у меня не критично.
    Ответ написан
    2 комментария
  • [Решено] Shortcut Visual Studio 2015 выделить код в блоке между фигурными скобками когда курсор в произвольном месте блока?

    AlexXYZ
    @AlexXYZ Автор вопроса
    O Keep Clear O
    Нашёл extension для 2015, который расширяет выделение от текущего места в коде сначала до слова, потом до строки, потом расширяет выделение на родительские блоки: HotCommandsforVisualStudio

    3b389c598f594cb889d6f7c916dfff98.gif
    Ответ написан
    Комментировать
  • C#, требуется отправить сырой HTTP(S) запрос?

    AlexXYZ
    @AlexXYZ Автор вопроса
    O Keep Clear O
    Разобрался!
    Маленькая тонкость - сервером выступает ElasticSearch.

    Действительно, решение через
    new Socket()
    правильное. Но! Нужно ООООЧЕНЬ внимательно следить за тем, что пишется в заголовках, а особенно за заголовком "Content-Length: NNN":
    1. Обязательно его вставлять, даже если он не указан!
    2. Правильно считать длину тела запроса. Не по символам, а по байтам.

    Вот переработанный пример кода MS из совета Петр, который уже нормально заработал:

    private void btnRequest_Click(object _sender, EventArgs e)
            {
                /* Текстовое поле, из которого я беру текст вида:
    GET http://HOST:9200/_search HTTP/1.1
    Host: HOST:9200
    
    {
    ....
        "highlight" : {
            "fields" : {
                "*" : {}
    
            }
        }
    }
               */
                string str = request_text.Text; 
                byte[] bytes = new byte[100024];  // Примерное число, которое надо поменять, если требуется! Мне для экспериментов подошло. В дальнейшем можно будет сделать какой-нибудь ByteStream
    
                // Connect to a remote device.
                try
                {
                    string str_first = str.Split(new char[] { '\r', '\n' })[0];
                    string[] arr_str_first = str_first.Split(' ');
                    string[] arr_str_address = arr_str_first[1].Split('/');
                    Uri uri = (new Uri(arr_str_first[1]));
                    string new_str_first = arr_str_first[0] + " /" + arr_str_address.Last() + " " + arr_str_first[2];
    
                    // разделить запрос на две части - заголовки и тело:
                    string str_headers = str.Substring(str_first.Length + 2, str.IndexOf("\r\n\r\n") - str_first.Length - 2);
                    string str_body = str.Substring(str.IndexOf("\r\n\r\n") + 4);
    
                    int index_substring_content_length = str_headers.IndexOf("Content-Length:");
                    if (index_substring_content_length >= 0)
                    {
                        string tmp = str_headers.Substring(index_substring_content_length);
                        string[] arr_temp = tmp.Split(new char[] { '\r', '\n' });
                        string sub_string_content_length = arr_temp[0];
                        sub_string_content_length = "\r\n" + sub_string_content_length;
                        Regex regex = new Regex(sub_string_content_length);
                        str_headers = regex.Replace(str_headers, "", 1);
                    }
    
                    // Establish the remote endpoint for the socket.
                    IPHostEntry ipHostInfo = Dns.GetHostEntry(uri.Host);
                    IPAddress ipAddress = ipHostInfo.AddressList[0];
                    IPEndPoint remoteEP = new IPEndPoint(ipAddress, uri.Port);
    
                    // Create a TCP/IP  socket.
                    Socket sender = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
    
                    // Connect the socket to the remote endpoint. Catch any errors.
                    try
                    {
                        sender.Connect(remoteEP);
    
                        Console.WriteLine("Socket connected to {0}", sender.RemoteEndPoint.ToString());
    
                        string raw_request = new_str_first+"\r\n"+str_headers+ "\r\nContent-Length: "+ Encoding.UTF8.GetBytes(str_body).Length+"\r\n\r\n"+str_body;
    
                        // Encode the data string into a byte array.
                        byte[] msg = Encoding.UTF8.GetBytes(raw_request); // + "<Client Quit>");
    
                        // Send the data through the socket.
                        int bytesSent = sender.Send(msg);
                        Console.WriteLine("bytesSent = {0}", bytesSent.ToString());
    
                        // Receive the response from the remote device.
                        int bytesRec = sender.Receive(bytes); 
                        Console.WriteLine("Echoed test = {0}", Encoding.UTF8.GetString(bytes, 0, bytesRec)); // bytesRec));
    
                        // Release the socket.
                        sender.Shutdown(SocketShutdown.Both);
                        sender.Close();
    
                    }
                    catch (ArgumentNullException ane)
                    {
                        Console.WriteLine("ArgumentNullException : {0}", ane.ToString());
                    }
                    catch (SocketException se)
                    {
                        Console.WriteLine("SocketException : {0}", se.ToString());
                    }
                    catch (Exception ex)
                    {
                        Console.WriteLine("Unexpected exception : {0}", ex.ToString());
                    }
    
                }
                catch (Exception ex)
                {
                    Console.WriteLine(ex.ToString());
                }
            }


    Вот результат, который было нужно получить в ответе от сервера:
    e9834dff7f9d4bfa849a2f10ae73a9a6.png

    Результат получен.

    P.S.
    Понял, почему не получалось с самого начала. Посмотрев, как Fiddler2 достаточно вольно обращается с синтаксисом запросов в разделе Composer, я и подумал, что и мне так можно. Но, скорее всего, в фоне Fiddler2 всё-таки перерабатывает запрос, стараясь максимально приблизить его к стандарту. Вот пример разницы того, что записано в Composer уменя и что показывает Inspector:

    cbe1feb2544f445e8b99fa03a5f306eb.png
    Ответ написан
  • MS Visual Studio 2015 падает с ошибкой при остановке WEB API проекта в режиме отладки, как починить?

    AlexXYZ
    @AlexXYZ
    O Keep Clear O
    Недавно было похожий прикол со студией 2013. Только падала при загрузке одного solution, с которым раньше работала нормально. Вылечил "repair" в установке/удалении программ. Вдруг поможет?
    Ответ написан