Polaris icon indicating copy to clipboard operation
Polaris copied to clipboard

stop-polaris not stopping the web server over 8080 or any port it's started with.

Open harikanth64 opened this issue 5 years ago • 6 comments

Polaris Bug Report

After running Stop-Polaris and when try to re-start the (start-Polaris) it will throw an error.

Description of the bug

Stop-Polaris is not stopping web server on whichever port its started with. I get a below when try to run Start-polaris

Exception` calling "Start" with "0" argument(s): "Failed to listen on prefix 'http://localhost:8080/' because it conflicts with an existing registration on the machine." At C:\Users\harikant\Documents\WindowsPowerShell\Modules\Polaris\0.2.0\lib\Polaris.Class.ps1:316 char:9 + $this.Listener.Start() + ~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : NotSpecified: (:) [], MethodInvocationException + FullyQualifiedErrorId : HttpListenerException

A clear and concise description of what the bug is.

Steps to reproduce

Example when you run the below code

New-PolarisGetRoute -Path "/helloworld" -Scriptblock {
    $Response.Send('Hello World!')
}

Start-Polaris -Port 8080

And run Stop-Polaris and again try to start-polaris command it thows the above error.

Expected behavior

To be able to stop and start the Polaris server without any errors.

Version Information


PSVersion : 5.1.17134.858 PSEdition : Desktop PSCompatibleVersions : {1.0, 2.0, 3.0, 4.0...} BuildVersion : 10.0.17134.858 CLRVersion : 4.0.30319.42000 WSManStackVersion : 3.0 PSRemotingProtocolVersion : 2.3 SerializationVersion : 1.1.0.1

NameVersion
Polaris0.2.0
PSVersionPSEditionPSCompatibleVersionsBuildVersionCLRVersionWSManStackVersionPSRemotingProtocolVersionSerializationVersion
5.1.17134.858DesktopSystem.Version[]10.0.17134.8584.0.30319.420003.02.31.1.0.1

harikanth64 avatar Oct 01 '19 15:10 harikanth64

Any update on this issue/bug?

harikanth64 avatar Oct 18 '19 06:10 harikanth64

Hi Harikanth, would you be able to take a look at the PR?

Tiberriver256 avatar Oct 31 '19 01:10 Tiberriver256

Hi,

Sorry for the late reply. Actually I was using the Polaris in wrong way. I was calling the "Start-Polaris -Port 8080" at the end of the script. And when I run it 2nd time it use to throw that error.

This was the script I am using "PolarisGet3-v1.ps1"

Add-Type -AssemblyName System.Web

New-PolarisGetRoute -Path "/getdata" -Scriptblock { $response.SetContentType('text/html') #$html = . "C:\Users\harikant\Documents\ProjectFMC\Content.ps1" $Html = . "C:\Users\harikant\Documents\ProjectFMC\mainTest.ps1" #$Html = . "C:\Users\harikant\Documents\ProjectFMC\mainTest-v2.ps1"

$Response.Send($Html)

}

New-PolarisPostRoute -Path "/home" -Scriptblock { $Response.SetContentType('application/json') $Body = [System.Web.HttpUtility]::UrlDecode($Request.BodyString) $Data = @{} $Body.split('&') | Where-Object{ $part = $_.split('=') $Data.add($part[0], $part[1]) } $Response.Send(($Data | ConvertTo-Json)) }

#Start-Polaris -Port 8080

I have one question. If I make some changes to mainText.ps1 script and run PolarisGet3-v1.ps1 do I need to this clear the route using this command "Remove-PolarisRoute" and run PolarisGet3-v1.ps1?

Regards, Harikanth

On Thu, Oct 31, 2019 at 6:44 AM Micah Rairdon [email protected] wrote:

Hi Harikanth, would you be able to take a look at the PR?

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub https://github.com/PowerShell/Polaris/issues/198?email_source=notifications&email_token=ADCB2QOMRMY7CXVJEKTKYXLQRIWN5A5CNFSM4I4LQ7LKYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOECWICRQ#issuecomment-548176198, or unsubscribe https://github.com/notifications/unsubscribe-auth/ADCB2QIRJ2NWMIPQN6YXHJTQRIWN5ANCNFSM4I4LQ7LA .

harikanth64 avatar Oct 31 '19 09:10 harikanth64

If you want to try the code in PR #200 it should let you call Start-Polaris multiple times without any negative effects.

To answer your question though you can either use Remove-PolarisRoute -Path '/home' -Method POST and then re-add the route with New-PolarisPostRoute -Path '/home' -ScriptBlock ... or you can add the -Force parameter to New-PolarisPostRoute to tell it to overwrite an existing route.

Tiberriver256 avatar Oct 31 '19 12:10 Tiberriver256

@Tiberriver256 Thanks so much for your answers. It is working as expected now. This question can be closed.

harikanth64 avatar Nov 12 '19 14:11 harikanth64

I used the code from PR #200 but had to remove $Hostname from $this.InitListener($Port, $Https, $Auth, $Hostname) (line 267 and 276) in order to make it work

ghost avatar Feb 18 '20 14:02 ghost