Настройка виртуального каталога web api

Для приложений dotnet применяется следующий механизм настройки виртуального каталога:

public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
     ...
     app.UseDefaultFiles("/tfs/dev")
     .UseStaticFiles("/tfs/dev")
     .UsePathBase("/tfs/dev");
     ...
}

Статья: https://stackoverflow.com/questions/46593999/how-to-host-a-asp-net-core-application-under-a-sub-folder

Запускаем Bot Framework на nginx

server {
    server_name vnext-bot.appcode.pw;
    client_max_body_size 2M;
    location / {
        try_files $uri $uri/ @proxy;
    }

    location ~* {
        proxy_pass http://127.0.0.1:5000;  
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Host $server_name;
    }
...
}

Статьи:

https://groosha.gitbook.io/telegram-bot-lessons/extra/multiple_bots_2

Создание бота при помощи SDK Bot Framework 4

Задача: создать бота, разместить на собственном сервере и зарегистрировать его.

Среда: Windows 10 с IDE Visual Studio 2019 Community.

Язык программирования: C#

Реализация

Установите шаблон BotBuilderVSIX.vsix, который вы скачали при выполнении предварительных требований.

В Visual Studio создайте проект бота с использованием шаблона эхо-бота на основе Bot Framework версии 4 и .NET Core 3.1. Выберите тип проекта AI Bots (Боты (ИИ)), чтобы отображались только шаблоны ботов.

Читать далее «Создание бота при помощи SDK Bot Framework 4»

Установка подписи SignatureField

<ru.mobnius.core.ui.component.signature.SignatureField
 android:id="@+id/control_signature"
 android:layout_width="match_parent"
 android:layout_height="wrap_content"
 app:signatureLabel="Подпись потребителя"
 android:layout_marginTop="@dimen/indent_small"
 app:layout_constraintTop_toBottomOf="@id/control_notice"/>
public class ControlMeterReadingsFragment extends BaseFormFragment implements OnSignatureListener {
   private SignatureField mSignatureField;
   ...
   @Override
   public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
   mSignatureField = view.findViewById(R.id.control_signature);
   mSignatureField.setOnSignatureListener(this);

   if(savedInstanceState != null) {
      updateSignature(savedInstanceState.getString(Names.SIGNATURE), false);
   }
   ...
   }
   
@Override
public void onClickSignature(int mode, String signature) {
Intent intent = new Intent(getContext(), SignatureActivity.class);
intent.putExtra(OnSignatureListener.MODE_NAME, mode);
intent.putExtra(OnSignatureListener.TITLE, "Подпись потребителя");

switch (mode) {
case OnSignatureListener.ADD:
startActivityForResult(intent, SignatureActivity.SIGNATURE_REQUEST_CODE);
break;

case OnSignatureListener.UPDATE:
intent.putExtra(OnSignatureListener.IMAGE, signature);
startActivityForResult(intent, SignatureActivity.SIGNATURE_REQUEST_CODE);
break;

case OnSignatureListener.REMOVE:
confirmDialog(new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
// таким образом очищаем содержимое
 updateSignature(null, true);
}
});
break;
}
}

Power Shell выполнение сценариев отключено в этой системе

При выполнении сценариев в Power Shell может возникать следующая ошибка

Import-Module : Невозможно загрузить файл C:\Program Files\WindowsPowerShell\Modules\Az.Resources\2.5.1\Az.Resources.ps
m1, так как выполнение сценариев отключено в этой системе. Для получения дополнительных сведений см. about_Execution_Po
licies по адресу https:/go.microsoft.com/fwlink/?LinkID=135170.
строка:1 знак:1
Import-Module Az.Resources

Чтобы обойти это нужно:

  • запустить Power Shell от администратора
  • выполнить команду Set-ExecutionPolicy RemoteSigned

Ошибка отладчика в Android Studio

Если при работе с Android Studio в эмуляторе возникает ошибка — нет возможности запустить эмулятор без отладки, выполняем следующую команду:

adb shell am clear-debug-app

Ошибка Nginx accept() failed (24: Too many open files)

У вас мощный сервер с десятком простых сайтов, клиенты довольны, сайты быстро открываются и регулярно обновляются. Приток посетителей с каждый днем все больше и больше. Но в один прекрасный момент эта идилия закончится, клиенты начнут жаловаться на частое появление ошибки 500. А почему она возникает? Давайте разберемся с одним из случаев.

Любая конфигурация связки apache+nginx с настройками по умолчанию когда-нибудь приведет к регулярному появлению ошибки 500. Почитав логи nginx вы увидите следующее:

Читать далее «Ошибка Nginx accept() failed (24: Too many open files)»

Android Osmdroid & Mobac

Введение: в этой статье будет описан процесс привязки открытых карт (Open Street Map) к мобильной платформе Android. Результатом будет «маленькое» приложение, которое будет работать на телефоне без подключенного интернета.

osmdroid

библиотека для работы с картами Open Street Map. Исходный код находится на github. Данную библиотеку требуется прикрепись к проекту.

Читать далее «Android Osmdroid & Mobac»