Base solution for your next web application

Activities of "npdevs"

Sure.

Hi,

Hangfire dashboard is missing after login to the web-host service.

Hangfire was enabled as described in documentation: https://aspnetboilerplate.com/Pages/Documents/Hangfire-Integration

Looks like the problem is related to permissions. We can see in debugger that

IsGranted(AppPermissions.Pages_Administration_HangfireDashboard)

returns "false".

In file Index.cshtml

@if (WebConsts.HangfireDashboardEnabled && IsGranted(AppPermissions.Pages_Administration_HangfireDashboard))
{
    <li><a href="@WebConsts.HangfireDashboardEndPoint">Hangfire</a></li>
}

But It looks like corresponding permission is already set in permissions UI:

We login as default "admin" account. We use ASP.NET CORE & Angular version of template (two separate VS solutions), template version 7.2.3. Running web-host part from VS 2017 in Windows 10.

Thanks!

It works. Thank you!

It works. Thank you!

Hi,

When we run web-host in Debian, the service is unable to return static files.

That causes the login page to be loaded without styles!

The issue can be reproduced on server side with the command: curl -L http://localhost:5000/view-resources/Views/Ui/Login.css the response is:

<head>
    <title>[myproject] - Error</title>

    <link href="/view-resources/Views/Error/Index.css" rel="stylesheet" />
</head>
<body>
    <div class="m-error_container">
        <span class="m-error_title">
            <h1>
                404
            </h1>
        </span>
        <p class="m-error_subtitle">
            Oops! You&#x27;re lost.
        </p>
        <p class="m-error_description">
            We can not find the page you&#x27;re looking for.<br>

            <a href="/" class="link">Home page</a>.
        </p>
    </div>
</body>

and the log is:

INFO  2019-11-29 06:02:27,454 [14   ] soft.AspNetCore.Hosting.Internal.WebHost - Request starting HTTP/1.1 GET [http://localhost:5000/view-resources/Views/Ui/Login.css](http://localhost:5000/view-resources/Views/Ui/Login.css) 
INFO  2019-11-29 06:02:27,523 [14   ] soft.AspNetCore.Hosting.Internal.WebHost - Request finished in 68.6452ms 302
INFO  2019-11-29 06:02:27,524 [18   ] soft.AspNetCore.Hosting.Internal.WebHost - Request starting HTTP/1.1 GET http://localhost:5000/Error?statusCode=404 
INFO  2019-11-29 06:02:27,529 [18   ] ft.AspNetCore.Routing.EndpointMiddleware - Executing endpoint '<myproject>.Web.Controllers.ErrorController.Index (<myproject>.Web.Core)'
INFO  2019-11-29 06:02:27,569 [18   ] ore.Mvc.Internal.ControllerActionInvoker - Route matched with {action = "Index", controller = "Error", area = ""}. Executing controller action with signature Microsoft.AspNetCore.Mvc.ActionResult Index(Int32) on controller <myproject>.Web.Controllers.ErrorController (<myproject>.Web.Core).
INFO  2019-11-29 06:02:27,611 [18   ] ore.Mvc.Internal.ControllerActionInvoker - Executing action method <myproject>.Web.Controllers.ErrorController.Index (<myproject>.Web.Core) - Validation state: Valid
INFO  2019-11-29 06:02:27,613 [18   ] ore.Mvc.Internal.ControllerActionInvoker - Executed action method <myproject>.Web.Controllers.ErrorController.Index (<myproject>.Web.Core), returned result Microsoft.AspNetCore.Mvc.ViewResult in 2.0744ms.
INFO  2019-11-29 06:02:27,615 [18   ] Core.Mvc.ViewFeatures.ViewResultExecutor - Executing ViewResult, running view Error404.
INFO  2019-11-29 06:02:27,664 [18   ] Core.Mvc.ViewFeatures.ViewResultExecutor - Executed ViewResult - view Error404 executed in 50.8185ms.
INFO  2019-11-29 06:02:27,664 [18   ] ore.Mvc.Internal.ControllerActionInvoker - Executed action <myproject>.Web.Controllers.ErrorController.Index (<myproject>.Web.Core) in 94.943ms
INFO  2019-11-29 06:02:27,665 [18   ] ft.AspNetCore.Routing.EndpointMiddleware - Executed endpoint '<myproject>.Web.Controllers.ErrorController.Index (<myproject>.Web.Core)'
INFO  2019-11-29 06:02:27,665 [18   ] soft.AspNetCore.Hosting.Internal.WebHost - Request finished in 141.3386ms 200 text/html; charset=utf-8

In the meantime the main (login) page is returned OK: curl -L http://localhost:5000

<head>
    <title>[myproject]</title>

    <link href="/view-resources/Views/Ui/Login.css" rel="stylesheet" />
</head>
<div class="login-form">
    <h1>Log in</h1>
    <form method="post">
        <div class="login-form-row">
            <label for="TenancyName">Tenancy name</label>
            <input type="text" id="TenancyName" name="TenancyName" placeholder="Tenancy name">
        </div>
        <div class="login-form-row">
            <label for="UsernameOrEmailAddress">User name or email</label>
            <input type="text" id="UsernameOrEmailAddress" name="UserNameOrEmailAddress" placeholder="User name or email">
        </div>
        <div class="login-form-row">
            <label for="password">Password</label>
            <input type="password" id="password" name="Password" placeholder="Password">
        </div>
        <div class="login-form-row">
            <input type="checkbox" id="rememberMe" name="RememberMe" value="true">
            <label for="rememberMe">Remember me</label>
        </div>
        <button type="submit" class="login-form-button">Log in</button>
    <input name="__RequestVerificationToken" type="hidden" value="[del]" /></form>
</div>

The same commands on developer's machine (Windows) works OK, returning requested .css file, and the log is:

INFO  2019-11-29 14:16:13,183 [19   ] soft.AspNetCore.Hosting.Internal.WebHost - Request starting HTTP/1.1 GET [http://localhost:5000/view-resources/Views/Ui/Login.css](http://localhost:5000/view-resources/Views/Ui/Login.css) 
INFO  2019-11-29 14:16:13,195 [16   ] NetCore.StaticFiles.StaticFileMiddleware - Sending file. Request path: '/view-resources/Views/Ui/Login.css'. Physical path: '<mypath>\aspnet-core\src\<myproject>.Web.Host\wwwroot\view-resources\Views\Ui\Login.css'
INFO  2019-11-29 14:16:13,195 [16   ] soft.AspNetCore.Hosting.Internal.WebHost - Request finished in 11.6626ms 200 text/css

We use ASP.NET CORE & Angular version of template (two separate VS solutions), template version 7.2.3. We running as Kestrel on Debian 10 and .NET Core 2.2.7 with simple command: dotnet myproject.Web.Host.dll

Binaries were published from Visual Studio 2017 using simple publishing to a folder ("File System" publish method).

Thanks!

Hi,

When we run web-host in Debian, the service starts but is not accessible from the outside of the box.

In the meantime the service can be successfully accessed inside the box, e.g. with the command: curl -L http://localhost:5000 No firewall involved, service just binds to the localhost network interface instead of external interface.

We use ASP.NET CORE & Angular version of template (two separate VS solutions), template version 7.2.3. We running as Kestrel on Debian 10 and .NET Core 2.2.7 with simple command: dotnet &lt;myproject>.Web.Host.dll Binaries were published from Visual Studio 2017 using simple publishing to a folder ("File System" publish method).

We have tried to put Kestrel configuration options in appsettings.json Something similar to config example described here: https://docs.microsoft.com/en-us/aspnet/core/fundamentals/servers/kestrel?view=aspnetcore-2.2#listenoptionsusehttps-1

{
  "Kestrel": {
    "Endpoints": {
      "Http": {
        "Url": "http://*:5555"
      }
    }
  }
}

But looks like service does not use this configuration.

  1. How can we configure service to bind network interface other than localhost, e.g. bind to http://*:5000
  2. How can we configure service to listen on different port, e.g. http://localhost:5555 or better http://*:5555
  3. How can we make other Kestrel options in appsettings.json be respected by the service, as described in https://docs.microsoft.com/en-us/aspnet/core/fundamentals/servers/kestrel?view=aspnetcore-2.2#kestrel-options-1

Thanks!

Showing 11 to 16 of 16 entries