169 похожих чатов

Кину сюда, может ткнёте пальцем в кривые места Remove-NetIPHttpsCertBinding Add-NetIPHttpsCertBinding -ApplicationId "{00112233-4455-6677-8899-AABBCCDDEEFF}"

-CertificateHash ((Get-ChildItem -Path cert:\LocalMachine\My|Where-Object{$_.FriendlyName -eq "WinCC8"}).Thumbprint) -CertificateStoreName "My" -IpPort "0.0.0.0:443" -NullEncryption $false
$HttpListener = New-Object System.Net.HttpListener
$HttpListener.Prefixes.Add("https://+:443/")
$HttpListener.Start()
while ($HttpListener.IsListening) {
$HttpContext = $HttpListener.GetContext()
$HttpRequest = $HttpContext.Request
$HttpResponse = $HttpContext.Response
$RawUrl = $HttpRequest.RawUrl
if($RawUrl -eq "/exit"){$HttpResponse.StatusCode=302;$HttpResponse.AddHeader("location","https://"+($HttpRequest.Url|Select-String -Pattern 'https://(.+?)/').Matches.Groups[1].Value+":444")}
else{
$HttpResponse.StatusCode = 200;$HttpResponse.Headers.Add("Content-Type","text/html; charset=UTF-8")
$section="main";$page="index"
$req=($HttpRequest.Url|Select-String -Pattern '/([^?#/]+)' -AllMatches).Matches
if($req.Length -eq 3){$section=$req[1].Groups[1].Value;$page=$req[2].Groups[1].Value}
$buffer=Get-Content -Path ($PWD.Path+"\pages\"+$section+"\"+$page+".html") -Encoding UTF8
if($buffer -ne $null){
$tags_name=@{};($buffer|Select-String -Pattern '%(.+?)%\.\w+' -AllMatches).Matches.ForEach({if (-Not $tags_name.ContainsKey($_.Groups[1].Value)){$tags_name.Add($_.Groups[1].Value,$null)}})
try{
$TagSet=(New-Object -ComObject CCHMIRuntime.HMIRuntime).Tags.CreateTagSet()
$tags_name.Keys.ForEach({$TagSet.Add($_)})
$TagSet.Read()
}catch{}
if($TagSet -ne $null){$buffer=$buffer -replace '%(.+?)%\.(\w+)', {$TagSet[$_.Groups[1].Value].($_.Groups[2].Value)}}
$ResponseBuffer = [System.Text.Encoding]::UTF8.GetBytes($buffer)
$HttpResponse.ContentLength64 = $ResponseBuffer.Length
$HttpResponse.OutputStream.Write($ResponseBuffer,0,$ResponseBuffer.Length)
}
}$HttpResponse.Close()
}$HttpListener.Stop()

6 ответов

93 просмотра

Выглядит конечно жестоко) Я пробовал в контейнере небольшие вебсервисы на поше поднимать в докере, юзая вот эту штуку - https://github.com/Badgerati/Pode В целом достаточно прикольно получилось)

Dmitriy Novikov
Выглядит конечно жестоко) Я пробовал в контейнере ...

Я, если честно, и ожидал, что человек возьмёт какой-то фреймворк на pwsh. А он прям так взял и сразу быка за рога.

notme- Автор вопроса
Dr. Friedrich von Never
Я, если честно, и ожидал, что человек возьмёт како...

Мне нужно было чтобы минимум внешних зависимостей, лучше всего один файл (не считая шаблонов страниц) А так по сути нагуглил все кирпичики и просто вместе их сложил )

notme- Автор вопроса
notme
Мне нужно было чтобы минимум внешних зависимостей,...

Ещё бы PS 5.1.xxxx не подложил свинью со своим зависанием - вопще ляпота б была!

если этот, то он же однопоточный

notme- Автор вопроса
L M
если этот, то он же однопоточный

Да, однопоточный, на JS у меня тоже однопоточное синхронное решение

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

Обсуждают сегодня

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Карта сайта