Inedo Community Forums Forums
    • Recent
    • Tags
    • Popular
    • Login

    Welcome to the Inedo Forums! Check out the Forums Guide for help getting started.

    If you are experiencing any issues with the forum software, please visit the Contact Form on our website and let us know!

    ProGet 2023 - IIS App pool stopping

    Scheduled Pinned Locked Moved Support
    16 Posts 3 Posters 55 Views
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • R Offline
      rick.kramer_9238
      last edited by

      After upgrading to ProGet 2023 we are seeing errors which causes the IIS app pool to stop, and it will start back up after someone tries to download a package or us the UI, but takes 90 sec - 2 minute to start back up. This is what I am seeing in the event viewer which coincides with with the app pool stops (we are on windows server 2022):

      Category: Microsoft.AspNetCore.Server.IIS.Core.IISHttpServer
      EventId: 2
      SpanId: 6f3ab11a2a3bf2ce
      TraceId: ea531c1240218f307196736526edf8bb
      ParentId: 0000000000000000
      RequestId: 40001e29-0001-d800-b63f-84710c7967bb
      RequestPath: /

      Connection ID "15564440317292715559", Request ID "40001e29-0001-d800-b63f-84710c7967bb": An unhandled exception was thrown by the application.

      Exception:
      System.OperationCanceledException: The operation was canceled.
      at System.Threading.CancellationToken.ThrowOperationCanceledException()
      at Microsoft.AspNetCore.Server.IIS.Core.HttpResponseStream.ValidateState(CancellationToken cancellationToken)
      at Microsoft.AspNetCore.Server.IIS.Core.HttpResponseStream.WriteAsync(ReadOnlyMemory1 source, CancellationToken cancellationToken) at Microsoft.AspNetCore.Server.IIS.Core.WrappingStream.WriteAsync(ReadOnlyMemory1 source, CancellationToken cancellationToken)
      at Inedo.IO.SlimmerMemoryStream.CopyToAsync(Stream destination, Int32 bufferSize, CancellationToken cancellationToken)
      at Inedo.Web.AhHttpResponse.CompleteAsync()
      at Inedo.Web.AhWebMiddleware.InvokeAsync(HttpContext context)
      at Inedo.Web.AhWebMiddleware.InvokeAsync(HttpContext context)
      at Inedo.Web.AhWebHost.<>c.<<Configure>b__18_0>d.MoveNext()
      --- End of stack trace from previous location ---
      at Microsoft.AspNetCore.Server.IIS.Core.IISHttpContextOfT`1.ProcessRequestAsync()

      atrippA 1 Reply Last reply Reply Quote 0
      • atrippA Offline
        atripp inedo-engineer @rick.kramer_9238
        last edited by

        Hello,

        I am copy-pasting the same reply made to EDO-10211 -- feel free to reply to one or the other.

        We'll do our best to help, but based on the information you provided, it sounds like your server might be "overloaded" and have more traffic than it can handle. I would recommend trying out ProGet 2023.31 (releasing later today) which has a few more performance tweaks, but if that doesn't solve the issue than it will involve looking at ways to expand server/clsuter capacity or reduce/throttle traffic.

        The error you shared is unfortunately unrelated, and is just a generic "client disconnected" error - it will occur if a a client (web browser, etc) disconnects prior a request being received. These should not be logged, but due to a known issue in .NET6 they are. This should be fixed in .NET8 (ProGet 2024).

        Best place to check is ProGet Diagnostic Center, under Admin. That will have the most relavent errors.

        Best,
        Alana

        R 1 Reply Last reply Reply Quote 0
        • R Offline
          rick.kramer_9238 @atripp
          last edited by

          @atripp Thanks for the reply. After more data gathering I think only once the I found the app pool stopped so it seems the unresponsiveness is something else. I thought something might be forcing a recycle because it is roughly the same amount of time. I cannot confirm at this time that it is being stopped or recycling.

          The .NET exception may be unrelated. but it started post-upgrade. And the unresponsiveness was noted again today (Saturday) when no one is online working. I navigated to UI, waited two minutes for it respond, and then sure enough a new Microsoft.AspNetCore.Server.IIS.Core.IISHttpServer exception is in the event viewer. So if not the root cause of anything, the timing sure makes it seem at least as another effect.

          There are no related messages in diagnotics center. I wondering if there is a way to do some tracing.

          atrippA 1 Reply Last reply Reply Quote 0
          • atrippA Offline
            atripp inedo-engineer @rick.kramer_9238
            last edited by

            Hi @rick-kramer_9238 ,

            It's possible that the IIS App-pool is automatically shutting down, which can lead to a "warm up" time that's required on a first request. However, this is typically measured in seconds in slow cases, not minutes. So it shouldn't take that long to "warm up".

            Unfortunately this isn't easy to troubleshoot, and it seems to be related to some kind of strange IIS configuration. We've heard of users solving it lots of different ways, from switching servers to uninstalling IIS, to switching to the Integrated Web Server. But no idea what actually works.

            The easiest thing to do, you may want to consider switching to the Integrated Web Server. Microsoft recommends that over IIS these days as well. The quickest way to do this is to uninstall ProGet (this does not delete database or packages), then reinstall to use the integrated web server. Make sure to point to same database at install time. You can configure HTTPS later.

            Best,
            Alana

            R 4 Replies Last reply Reply Quote 0
            • R Offline
              rick.kramer_9238 @atripp
              last edited by

              @atripp Thanks, I will continue to monitor. We did not get the .NET error this morning. There was no server reboot but there was an automated IIS reset. We are going to also set up a synthetic monitor in Dynatrcae on the UI.

              1 Reply Last reply Reply Quote 0
              • R Offline
                rick.kramer_9238 @atripp
                last edited by

                @atripp Do you have any thoughts on the changing the Start Mode and the idle timeout on the app pool? Or Preload Enabled on the Site?

                atrippA 1 Reply Last reply Reply Quote 0
                • atrippA Offline
                  atripp inedo-engineer @rick.kramer_9238
                  last edited by

                  Hi @rick-kramer_9238 , you could certainly try to enable those and see if they help or make a change.

                  R 1 Reply Last reply Reply Quote 0
                  • R Offline
                    rick.kramer_9238 @atripp
                    last edited by

                    @atripp After doing more testing, I do not think this has anything to do with IIS. I think the login process is what is spinning for 3-4 minutes on initial testing in the morning. We have Windows Integrated Auth enabled wich is what we had been using before upgrade. It looks like Username/Password is also enabled now, not sure if that was enabled before the upgrade. I would be interested in any thoughts you might have on this. thanks

                    atrippA 1 Reply Last reply Reply Quote 0
                    • atrippA Offline
                      atripp inedo-engineer @rick.kramer_9238
                      last edited by

                      Hi @rick-kramer_9238 ,

                      We have seen cases where LDAP/AD is painfully slow; one common reason is that "recursive group search" is enabled.

                      But before digging into that, I would just temporary disable Windows Auth (do this in IIS) and disable LDAP/AD, so that you're only loggin in with a built-in username/password. If it's still really slow, then you know it's unrelated.

                      Best,
                      Alana

                      1 Reply Last reply Reply Quote 0
                      • R Offline
                        rick.kramer_9238 @atripp
                        last edited by rick.kramer_9238

                        @atripp If we switch to using integrated web server I would probably upgrade from 2023.30 to 24.0.1. If we would happen to need to rollback, would a database restore be needed-- are there database changes moving between these version? Thanks!

                        stevedennisS 1 Reply Last reply Reply Quote 0
                        • stevedennisS Offline
                          stevedennis inedo-engineer @rick.kramer_9238
                          last edited by

                          Hi @rick-kramer_9238 ,

                          I wouldn't recommend upgrading to ProGet 2024 solely for that reason, as it's a major release and if there were issues, it'd be easier to isolate Integrated Web Server vs Regression.

                          Here are the upgrade notes:
                          https://docs.inedo.com/docs/proget-upgrade-2024

                          That said, if you need to rollback to ProGet 2023, you can do so without restoring the database by simply using the Inedo Hub. While there are database schema changes, they are all backwards-compatible with ProGet 2023, which means you can safely rollback your ProGet installation if there's a showstopper bug, and then upgrade later.

                          However, you should backup your database as an extra precaution anyway.

                          Thank you,
                          Steve

                          1 Reply Last reply Reply Quote 0
                          • R Offline
                            rick.kramer_9238 @atripp
                            last edited by

                            @atripp After re-installed with the IWS, we want to set up HTTPS and bind the the existing cert for the DNS entry we use for our ProGet instance. Is it necessary to do all the steps on https://docs.inedo.com/docs/installation-windows-https-support, or can we just register the certificate underneat "HTTPS Binding to a Hostname"

                            atrippA 1 Reply Last reply Reply Quote 0
                            • atrippA Offline
                              atripp inedo-engineer @rick.kramer_9238
                              last edited by

                              Hi @rick-kramer_9238,

                              In all cases, you'll need to configure ProGet to listen to a certain URL; this basically involves editing the ProGet configuration file, which the web page will do for you (or you can edit yourself).

                              If you're going to do port sharing (i.e. have multiple applications on the server listen/respond
                              on port 443 for example), the you also need register the URL and certificate with Windows using the netssh commands.

                              If you're not doing port sharing (i.e. ProGet is only application listening on 443) then no need to use netsh.

                              Hope that helps,
                              Alana

                              R 1 Reply Last reply Reply Quote 0
                              • R Offline
                                rick.kramer_9238 @atripp
                                last edited by

                                @atripp Thanks, we got the cert added and https working fine, but after moving away from IIS and running ProGet self-hosted, if anyting the logging time is worse. Everytime I bring up the UI it re-auths me and spins for minutes before opening. There are no messages in the Diagnostic Center. Is there any place I can turn on additional logging to help diagnose this?

                                stevedennisS 1 Reply Last reply Reply Quote 0
                                • stevedennisS Offline
                                  stevedennis inedo-engineer @rick.kramer_9238
                                  last edited by

                                  Hi @rick-kramer_9238,

                                  The issue sounds like it's related to LDAP configuration (i.e. slow queries to your LDAP/AD server), but it's hard to say. This wouldn't behave any differently in IIS for IWS.

                                  The first thing I would try is disabling LDAP / AD. And Windows Integrated Authentication (if you have it enabled). If the server is still slow, then I would try http:// instead of https://

                                  Once you've identified where the slowness is coming from, we can address it. The most common issue with LDAP is recursive/nested group searches - especially when there are like thousands of groups and everyone's a member of something.

                                  I would "play" with your LDAP settings and try to isolate why it's so slow.

                                  Thanks,
                                  Steve

                                  R 1 Reply Last reply Reply Quote 0
                                  • R Offline
                                    rick.kramer_9238 @stevedennis
                                    last edited by

                                    @stevedennis I swtiched from "V3: Active Directory (LDAP)" to "V4: Active Directory/LDAP (Preview)" and all is good now. Logon went from two/three minutes down to one second.

                                    1 Reply Last reply Reply Quote 0

                                    Hello! It looks like you're interested in this conversation, but you don't have an account yet.

                                    Getting fed up of having to scroll through the same posts each visit? When you register for an account, you'll always come back to exactly where you were before, and choose to be notified of new replies (either via email, or push notification). You'll also be able to save bookmarks and upvote posts to show your appreciation to other community members.

                                    With your input, this post could be even better 💗

                                    Register Login
                                    • 1 / 1
                                    • First post
                                      Last post
                                    Inedo Website Home • Support Home • Code of Conduct • Forums Guide • Documentation