MSDTC - сколько портов необходимо

Добавьте следующий код в код процесса отображения вашего окна . Обратите внимание, что вам, возможно, придется адаптировать первые две строки, в зависимости от того, какие элементы API уже определены ...

const { remote, webFrame } = require ('electron');
const { getCurrentWebContents, Menu, MenuItem } = remote;
//
let rightClickPosition;
//
const contextMenu = new Menu ();
const menuItem = new MenuItem
(
    {
        label: 'Inspect Element',
        click: () =>
        {
            let factor = webFrame.getZoomFactor ();
            let x = Math.round (rightClickPosition.x * factor);
            let y = Math.round (rightClickPosition.y * factor);
            getCurrentWebContents ().inspectElement (x, y);
        }
    }
);
contextMenu.append (menuItem);
//
window.addEventListener
(
    'contextmenu',
    (event) =>
    {
        event.preventDefault ();
        rightClickPosition = { x: event.x, y: event.y };
        contextMenu.popup ();
    },
    false
);

Ссылки:

Что касается того, как открыть devTools с помощью ярлыка, это произойдет автоматически, если строка меню содержит подменю с меню предмет, у которого role есть toggledevtools. Например, в вашем коде основного процесса добавление этого в шаблон меню обеспечит пункт меню Toggle Developer Tools со стандартным сочетанием клавиш:

{
    label: "Developer",
    submenu:
    [
        { role: 'reload' },
        { role: 'toggledevtools' }
    ]
}

Ссылка: Пункт меню Роли

ОБНОВЛЕНИЕ :

Похоже, существует более мощный и гибкий способ обработки контекстного меню на уровне webContents путем прослушивания 'context-menu' событие, задокументированное начиная с Электрон 1.0.2.

Одна важная особенность заключается в том, что коэффициент масштабирования больше не нужно принимать во внимание, координаты x и y, возвращаемые в params, просто всегда верны.

Ссылка: Событие webContents: 'context-menu'

Вот несколько альтернативных кодов процесса визуализации с использованием этого метода:

const { getCurrentWebContents, Menu, MenuItem } = require ('electron').remote;
//
let webContents = getCurrentWebContents ();
//
let rightClickPosition;
//
const contextMenu = new Menu ();
const menuItem = new MenuItem
(
    {
        label: 'Inspect Element',
        click: () =>
        {
            webContents.inspectElement (rightClickPosition.x, rightClickPosition.y);
        }
    }
);
contextMenu.append (menuItem);
//
webContents.on
(
    'context-menu',
    (event, params) =>
    {
        rightClickPosition = { x: params.x, y: params.y };
        contextMenu.popup ();
    }
);

13
задан Migol 23 March 2009 в 15:55
поделиться

2 ответа

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

В базе знаний упоминается минимум 100 портов

Кроме того, предыдущий опыт показывает что минимум 100 портов должно быть открылся, потому что несколько систем службы полагаются на эти порты RPC для общаться друг с другом.

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

5
ответ дан 2 December 2019 в 00:32
поделиться

Когда мы должны были сделать, этот вид отладки этой статьи был особенно полезен: Как диагностировать проблемы брандмауэра MS DTC. Это включает приложение под названием DTCPing, который помогает Вам быстро отладить, какова проблема.

Насколько я помню, что следующие порты использовались:

Порт TCP 1433 (Порт по умолчанию, используемый SQL Server)

Порт UDP 1434 (Используемый SQL Server)

Порт TCP 3372 (Используемый MSDTC.EXE)

9
ответ дан 2 December 2019 в 00:32
поделиться
Другие вопросы по тегам:

Похожие вопросы: