Thanks for the update!
for the --append-dependencies flag do i only use that on the 2nd attempt?
Thanks for the update!
for the --append-dependencies flag do i only use that on the 2nd attempt?
@Dan_Woolf Thank you!
if it helps, my version is 2022.18 (Build 7)
Testing:
that test plan should work perfectly fine for me. We have 2 main scenarios for using this on yarn:
Inspect:
I tried that command on a project that I haven't created an SCA for. I received a peculiar error testing it out that I'm not sure how i'd go about troubleshooting. It didn't create the project, and when I made one myself it still errored out with this message.
I have version 1.4.1 installed as a dotnet tool. Below is what I'm calling:
pgscan identify `
--input=$pwd\PROJECT.sln `
--proget-url=https://myprogeturl.mydomain `
--consumer-package-version=0.1.0 `
--project-name=PROJECT `
--api-key=myApiKey `
--report
Heyo @Dan_Woolf
I've got a few questions about how the pgscan utility works with regards to NPM packages.
@atripp that's extremely informative!
What I found this morning that was deleting and re-adding the connector for the IP feed after clearing the cache(because I'm paranoid) was what needed to happen for it to stop being cached by our Mainline feed.
My version of Proget is 6.0.7.
We created our own custom package and put it in a feed for custom packages made by my organization, called the IP feed. There's a secondary feed named Mainline, which has packages we store that we got from 3rd party sources, mainly Nuget.org. Mainline has a connector to IP that pulls packages in from said feed.
Recently I was told that a Nuget Package was being removed from IP as it was renamed, and thus I should remove it from the feed. I delete it from IP, but it still shows in mainline. I then try the following:
I see it still in Mainline, with the little radio tower symbol which indicates it's pulled from a connector. In the dropdown menu that allows me to download a package the option to delete it is not one of them. I'm out of ideas, sadly.
Who do I have to sacrifice to make the package go away? Albino goats are particularly expensive.
@atripp you're the best.
I'll give these a shot and come back if i run into something i can't work through.
Are those APIs case sensitive? because I had originally tried to use npmFeeds_SetTagVersion and got the first error I posted
[16:07:11]Step 5/6: Proget: Apply tag to Latest Version (15s)
[16:07:11][Step 5/6] Step 1/1: Apply Latest Tag to Version (PowerShell) (15s)
[16:07:27][Step 1/1] Invoke-RestMethod : There is no API method named npmFeeds_SetTagVersion
[16:07:27][Step 1/1] Error message: Invoke-RestMethod : There is no API method named npmFeeds_SetTagVersion
[16:07:27][Step 1/1] At C:\TeamCity\BuildAgent\temp\buildTmp\powershell16555570498298526.ps1:25 char:13
I would have expected to get a 400 error from your API from my bad parameters making an invalid request instead of this.
What I mean is that I want to try to tag npm packages via the API. I found this in a build that wasn't finished that I am now responsible for. The engineer previously responsible for it has left our organization and I don't know where he got this or how, and this was not documented by him to my knowledge in any ticket he worked on.
Here's the actual API call I saw in our build in a custom powershell runner in Team City. The %variable% references are Team City syntax for how that software inserts its own variables into script runners.
$headers = New-Object "System.Collections.Generic.Dictionary[[String],[String]]"
$headers.Add("Content-Type", "application/json")
$body = "{
`n`"Feed_Name`" : `"npm`",
`n`"FeedType_Name`" : `"npm`",
`n`"API_Key`" : '%svc.proget.apikey%',
`n`"Feed_Id`": 6,
`n`"Package_Name`": '%package.name%',
`n`"Scope_Name`": `"MyCompany`",
`n`"Tag_Name`": `"latest`",
`n`"Tag_Version`": '%app.version%'
`n}"
$response = Invoke-RestMethod "%svc.proget.host%/api/json/NugetFeeds_SetTagVersion" -Method 'POST' -Headers $headers -Body $body
Someone in my organization was using the NugetFeeds_SetTagVersion endpoint to attempt to tag nugets. I'd like to try the same for NPM packages, but my api calls return with an error: Invoke-RestMethod : There is no API method named npmFeeds_SetTagVersion
Does this exist for NPM? Does proget have a swagger or other query-able API that can tell me the definitions of what's there?
Good Morning @atripp ,
I'll try and experiment in fiddler with this to see if I can learn more about it. We don't have any cached responses that I am aware of internally but I'll investigate some sources that I think might potentially be the cause.
Is this the setting you were referring to called Configure Feed Caching?
Hello!
I currently run proget 5.3.28 (build 16). We run builds on our build server to update the nuget packages on our feed by method of a drop folder. Build operations go like this:
1 Restore solution
2 copy every .nuget file to a shared drive on the proget server
3 wait
I've watched the server run through it's processes, and it looks like it vacuums up all of those nuget files really quickly. I check the nuget page on the server, see the new package updated, then go try to run my other build that needed this new package. More often than not, the build fails because it can't find the new package version, citing the url for the feed that it cant find it in.
I normally have to wait anywhere from 10 minutes to an hour for a package to be searchable on proget through nuget. I occasionally get really lucky and I can use it right away. This has always been the case for us in the 2 or 3 years we have been using the software.
What factors determine how fast it reindexes packages to make them query-able in the system? I'd like to not have to tell my dev teams that they have to wait an hour for a build to rerun.
If there is a better method to updating the package feed, I'd love to do that instead. Please let me know.
Thank you @atripp! Using the utility multiple times isn't an issue for us. I'll find some way of making that work.
Thank you again for your assistance here.
@atripp Thank you for getting back to me! This is incredibly helpful.
When you point pgscan to a .sln file, it will parse the file and look for projects. Under each project, the tool will look for packages.config (which is the older style project format) and then project.assets.json (which is the newer style).
Does this register submodules and subprojects individually under the group name? Using my previous example: would all the nuget dependencies get registered under MyProject1, or would I see Myproject1\submodule1 as how it's registered? If it doesn't do the latter, what would you recommend me do in order to achieve that state?
This isn't currently supported it seems (I don't see a delete button in the UI), but if you don't mind going to the database, you can just do DELETE [PackageDependents] and then all the rows are cleared.
I don't mind going into the DB to fix my massive mistake. Is there a place I can feature request this as a UI addition?
I have proget build 5.3.25. On every page where I have registered the package dependencies the table for Package downloads cuts off what looks like the 3rd column.
If i hide the table I can see the missing information, and it lines up correctly.
I have several questions on how the PG Scan utility works that the documentation doesn't immediately answer for me.
suppose I am calling the pgscan utility....
& $pgscanDir\pgscan.exe Publish --type=$pkgType --input=$solutionName --package-feed=$feedName --proget-url=$progetURL --consumer-package-source=$sourceFeedName --consumer-package-name=$packageName --consumer-package-version=$releaseNumber --consumer-package-group=$devCodeName --api-key=$apiKey
@atripp You bet. I'll see what I can do and let you know
@atripp I might have to go with trying a connector for this package. I got into this whole mess because I was unable to restore Owin at all after I had it in my feed after an update. I tried re-packaging it via the UI from within proget to calling it 1.0.0. This only made a package that we couldn't properly download or restore because other things depending on it were busted.
This is strangely not repeatable for me either.
I made a package on a new feed I named TestFeed, and created a nuget package called TestyMcBadVersion, gave it the semver of 1.0, and it uploads as 1.0.0 on the system. It was a completely empty package and I created it via CLI using the latest nuget.exe. I tried repackaging and deleting like we had reviewed above and... nothing. It works as intended. This was supposed to mimic the problems I was having with an older package. The official name of the package in question is Owin (I've had troubles with this in the past). the official Nuspec for it lists it as 1.0, in Proget it's listed as 1.0 because the software doesn't try to auto-fix it.
The problem seems relegated to my main feed where most of my developers pull from.
What you've asked is how I've been deleting it. I go into the UI, I see the bad package version, and then delete it. I don't check "delete all versions" because it would wipe the good one. When I do delete it, I am re-directed to the main page for the feed. Once I do this, I search for the package, and I still see it there in the UI as if nothing has happened.
Of course, all versions go away when i delete all versions of the package.... that is until I promote from another feed; then they return.
Hallo,
I've got a package issue that I'm not sure of how to solve:
I manually repackaged a nuget to try and fix a version issue because it has some semantic version problem. This fixed an old package to have a version of 1.0 and 1.0.0 in Proget. Unfortunately this causes download errors now when I use this feed because it can't truly resolve either of those packages. I've since tried to delete the package and all of its versions and run a cleanup. When I promote the package in its original form from the test feed to the main one where the errors are, it re-creates both versions of this package that I had deleted and restores both of their statistics. I'd like to remove the bad version but it doesn't go away, even if I only delete the one I repackaged myself.
How can I get rid of it? I'm on version 5.3.17 (build 19).
Yeah, that's a nightmare and a half and I can see why you did that.
Currently I've tried repackaging the nuget but it brings about other errors, where it restores properly but later on in compile I get build errors. Right now I'm using the legacy version/older version of the nuget URL instead of the current v3 one until they get off of that package and I can remove it from my feed. It follows the format: https://url.domain/nuget/feedName/
instead of https://url.domain/nuget/feedName/v3/index.json
.
Thank you for that information. I had suspected as much that this might be a nuget problem but did not have enough information to confirm. What do you suggest I do? Should I just repackage the nuget then to fix it? From what I've seen this is a very recent issue and it almost seems better to work around it in code (on our end)
Hello!
I ran into an issue recently with a few packages that I'd like to get more information on how to solve. I noticed that there are a few packages that have a semvar of X.0.0, and instead of showing up with that version in my server, it shows up as X.0 instead and the last 0 is removed. I'll note that all packages I upload to the server are uploaded in bulk to the drop folder I have created for the feed. The server's version is Version 5.3.17 (Build 19).
An example is Owin. The latest version as indicated on Nuget.Org is 1.0.0. I've tested the download of the file from that site manually, and it appears as Owin.1.0.0.nupkg as I'd expect. However When I upload it to my proget server, it reads as 1.0. This in turn is causing weird nuget restore issues for my build server, where the package "cannot be found" because the expected version is 1.0.0 but I only have 1.0.
There are a few other packages with a similar version, like 1.0.0, or 2.0.0, and in those cases the package versions get truncated.
See example below:
I know that you can repackage a nuget file to fix the version? but I'm not sure what exactly that does to the package itself.
What I've tried:
Currently I have a workaround where my build server also uses the official nuget.org api to grab the packages it needs when it can't find them on my proget server. Strangely enough It will restore from there officially with that file version.
@rhessinger --
I did forget to add: I was able to resolve it all after I reset the admin password and reset the services. Once logged in It prompted me to clear cookies for my name account since I am the only one that's been using it.
I have done ask you asked in your last reply. It looks as though renaming the file to just be InedoCore.upack is the solution.
I have since logged back into my instance of Proget and re-enabled LDAP using an administrative service account. From there, it sent be back to the login, where I logged in as myself. In the Permissions page for users and groups, I have added a user in the directory where the users reside, and can confirm that his username does NOT get replaced with his MACHINEACCOUNT$ object. Testing on a few other users seems to indicate that the issue is solved.
Thank you very much for your help.
Trying to install it, but it causes this error when I load the web portal:
[InvalidCastException: Unable to cast object of type 'System.Byte[]' to type 'System.String'.]
Inedo.Extensions.UserDirectories.Entry.ExtractGroupNames() +260
Inedo.Extensions.UserDirectories.ActiveDirectoryUser.IsMemberOfGroup(String groupName) +120
System.Linq.WhereArrayIterator`1.MoveNext() +71
System.Linq.Buffer`1..ctor(IEnumerable`1 source) +492
System.Linq.<GetEnumerator>d__1.MoveNext() +116
System.Linq.Buffer`1..ctor(IEnumerable`1 source) +281
System.Linq.Enumerable.ToArray(IEnumerable`1 source) +90
System.Collections.Concurrent.ConcurrentDictionary`2.GetOrAdd(TKey key, Func`2 valueFactory) +87
Inedo.ProGet.Web.Security.TaskChecker.FindPrivilege(IUserDirectoryUser user, ScopedTask& scopedTask) +42
Inedo.Security.UserContext.CanPerformTask(ScopedTask& task) +162
Inedo.ProGet.WebApplication.Security.WebUserContext.IsAuthorizedForTask(ProGetSecuredTask task, Nullable`1 feedId) +199
Inedo.ProGet.WebApplication.Pages.RootPage.CreateTopPanel() +1006
Inedo.ProGet.WebApplication.Pages.<CreateChildControlsAsync>d__2.MoveNext() +871
System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() +31
System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) +60
Inedo.ProGet.WebApplication.Pages.<InitializeAsync>d__10.MoveNext() +621
System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() +31
System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) +60
Inedo.Web.PageFree.<ExecutePageLifeCycleAsync>d__46.MoveNext() +234
System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() +31
System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) +60
Inedo.Web.PageFree.<ProcessRequestAsync>d__45.MoveNext() +240
System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() +31
System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) +60
System.Web.TaskAsyncHelper.EndTask(IAsyncResult ar) +59
Inedo.Web.Handlers.AsyncHandlerWrapper.EndProcessRequest(IAsyncResult result) +33
System.Web.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() +648
System.Web.HttpApplication.ExecuteStepImpl(IExecutionStep step) +213
System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) +131
I've rolled it back by deleting the .upack file i added to the /Extensions folder and restoring the one I had put in the recycle bin, but I'm still facing this error.
My searches were all done in the advanced search window, and that did not return computer accounts. I also tried in active directory to just look up computer accounts (instead of users) and couldn't return any.
@rhessinger absolutely. my IT team tells me no, and I am in AD looking at the account via Active Directory Users and computers and I do not find anything. I can confirm without a doubt that there isn't a gMSA for this user.
No Reverse-Proxy in front of my server.
RE: [Privileges]
My account is the only account in this user domain that I have explicitly specified, and it has a $ in the name.
Other data fields for my entry are as follows:
| PrincipalType_Code | Role_Id | Feed_Id | PrivilegeType_Code | UserDirectory_Id |
|G | 4 | NULL | G | 6 |
I'm going to take a wild guess and assume then that the PrincipalType_Code value means group account, as actual user accounts show up with code U, and the actual group accounts which contain the users I want to have in the various roles also show up as G.
Product Version: Version 5.3.15 (Build 2)
Extension Version: 1.7.10
Absolutely.
Im in the users and tasks menu adding a permission. Everything looks normal here.
It adds my machine account instead after I click save. Does this for every user in that domain.
.
I verified this with our IT department: user accounts do not have their own gMSA. When I test the search feature it shows me the correct user in the dropdown when I select options. Further testing shows that when I explicitly look for any machine name account, it fails to find it. Truly peculiar.
I'm using Active Directory (LDAP). Within that configuration I only have 1 Domain listed, and only 1 DC hostname. There are not NetBios mappings, and I only have gMSA checked as an option. Search Mode is set to All Trusted Domains
I do not have multiple LDAP directories configured on my ProGet server. I only have the Server LDAP one configured.
Please excuse my delay, I accidentally caused myself AD issues that completely broke the server and made it so I could not go in and check my settings.
To answer your question, I'm using the Server directory where my servers reside, since they're in a different domain and network than the User Domain where the users reside. There's some crossover because I can look up principals in the other domain. Earlier this afternoon I was trying it out and I got one of the users to show up in the permissions screen, however when assigning permissions a few seconds later it reverted back to Machine Accounts.
Afternoon Rich,
I did some more digging after I reset the admin password to see what caused my random issue. It turns out to not be the SPN or the domain controller being inactive.
The source was definitely the AD connection though. The domain I was using did not have LDAPS set up yet (I mistakenly thought that it was), and me selecting LDAPS checkbox in AD settings caused it to break and lock me out of the server. No fun. I've since fixed that issue and everything looks like it is working as expected.
Thank you for your help on this issue.
Hi @atripp ,
Based on the options listed I don't think any of those would be an issue. We did retire one of our DCs, but I made sure to choose a valid one when I began setting it all up, and can verify the address of it. We don't have a proxy in place, and the cert I have used was verified before it was given to me.
Rebooting didn't make this go away either. I switched it back to Network Service as the default, but still get the error. This is what Event Viewer has recorded:
Event code: 4010
Event message: An unhandled security exception has occurred.
Event time: 11/9/2020 11:44:51 AM
Event time (UTC): 11/9/2020 4:44:51 PM
Event ID: af3bcc1e9e934c97b6f727944820e1d0
Event sequence: 3
Event occurrence: 1
Event detail code: 0
Application information:
Application domain: /LM/W3SVC/2/ROOT-1-132494135555642283
Trust level: Full
Application Virtual Path: /
Application Path: C:\Program Files\ProGet\Web\
Machine name: PROGET
Process information:
Process ID: 7884
Process name: w3wp.exe
Account name: NT AUTHORITY\NETWORK SERVICE
Request information:
Request URL: https://proget-url:443/log-in?ReturnUrl=/administration
Request path: /log-in
User host address: 127.0.0.1
User: Anonymous
Is authenticated: True
Authentication Type:
Thread account name: NT AUTHORITY\NETWORK SERVICE
Custom event details:
and
Event code: 3005
Event message: An unhandled exception has occurred.
Event time: 11/9/2020 11:41:43 AM
Event time (UTC): 11/9/2020 4:41:43 PM
Event ID: 9ac92bad88f74897af0715e1c1a1eab8
Event sequence: 2
Event occurrence: 1
Event detail code: 0
Application information:
Application domain: /LM/W3SVC/2/ROOT-1-132494135555642283
Trust level: Full
Application Virtual Path: /
Application Path: C:\Program Files\ProGet\Web\
Machine name: CICD-PROGET
Process information:
Process ID: 7884
Process name: w3wp.exe
Account name: NT AUTHORITY\NETWORK SERVICE
Exception information:
Exception type: COMException
Exception message: The server is not operational.
at System.DirectoryServices.DirectoryEntry.Bind(Boolean throwIfFail)
at System.DirectoryServices.DirectoryEntry.Bind()
at System.DirectoryServices.DirectoryEntry.get_AdsObject()
at System.DirectoryServices.DirectorySearcher.FindAll(Boolean findMoreThanOne)
at System.DirectoryServices.DirectorySearcher.FindOne()
at Inedo.Extensions.UserDirectories.ADUserDirectory.TryGetPrincipal(PrincipalSearchType searchType, String principalName)
at Inedo.Extensions.UserDirectories.ADUserDirectory.TryGetAndValidateUser(String userName, String password)
at Inedo.ProGet.WebApplication.ProGetHttpModule.ValidateUser(HttpApplication app, String userName, String password)
at Inedo.Web.InedoHttpModule.AuthenticateRequestAsync(HttpApplication app)
at Inedo.Web.InedoHttpModule.ProcessBegin(Object sender, EventArgs e, AsyncCallback cb, Object extraData)
at System.Web.HttpApplication.AsyncEventExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute()
at System.Web.HttpApplication.ExecuteStepImpl(IExecutionStep step)
at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously)
Request information:
Request URL: https://proget:443/nuget/companyIP/Packages()/$count?$filter=IsAbsoluteLatestVersion&semVerLevel=2.0.0
Request path: /nuget/companyIP/Packages()/$count
User host address: 127.0.0.1
User:
Is authenticated: False
Authentication Type:
Thread account name: NT AUTHORITY\NETWORK SERVICE
Thread information:
Thread ID: 13
Thread account name: NT AUTHORITY\NETWORK SERVICE
Is impersonating: False
Stack trace: at System.DirectoryServices.DirectoryEntry.Bind(Boolean throwIfFail)
at System.DirectoryServices.DirectoryEntry.Bind()
at System.DirectoryServices.DirectoryEntry.get_AdsObject()
at System.DirectoryServices.DirectorySearcher.FindAll(Boolean findMoreThanOne)
at System.DirectoryServices.DirectorySearcher.FindOne()
at Inedo.Extensions.UserDirectories.ADUserDirectory.TryGetPrincipal(PrincipalSearchType searchType, String principalName)
at Inedo.Extensions.UserDirectories.ADUserDirectory.TryGetAndValidateUser(String userName, String password)
at Inedo.ProGet.WebApplication.ProGetHttpModule.ValidateUser(HttpApplication app, String userName, String password)
at Inedo.Web.InedoHttpModule.AuthenticateRequestAsync(HttpApplication app)
at Inedo.Web.InedoHttpModule.ProcessBegin(Object sender, EventArgs e, AsyncCallback cb, Object extraData)
at System.Web.HttpApplication.AsyncEventExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute()
at System.Web.HttpApplication.ExecuteStepImpl(IExecutionStep step)
at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously)
Custom event details:
I can validate that my DC is correct. At this point I can't login anymore to get into the administration to do anything. Because I enabled AD the Admin account wont work...
Would removing the Active Directory rows in SQL fix my issue? I want to get rid of this setting so I can start over and figure out where it went wrong.
I'm setting up integrated auth, and there's a directory where most of my users reside where they have a machinename that matches their login name. When I search for users in proget I can easily find them, however when I click OK to submit permissions update it shows their machine account instead.
example:
MyUser@domain.com returns as MYUSER$@domain.com.
How do I filter that out in my settings?
I recently rebuilt my ProgGet server (licensed ProGet basic), setting it up on IIS and serving the website over https://:443. As a part of the rebuild, I enabled Integrated Auth so we could use our windows accounts.
Everything was working fine up until maybe a couple of hours ago when the server crashed while looking up an ADO so that I could assign permissions. As I re-opened the tab I found myself unable to login as "The Server Is Not Operational" errors appeared on the login.
I tried what was listed here: https://forums.inedo.com/topic/1349/active-directory-authentication/2 with a service account but wasn't able to rectify it.
What else can I do to diagnose this?
@rhessinger said in Integrated Auth Not Working When I Switch to IIS Hosting:
As long as the Application Pool and Windows Service run as that account and you add that service account to have the ProGet database access as you listed above, there should not be any issues authenticating. I have also seen some companies that have GPO require users to run as a service to be setup within Group Policy. Can you verify you do not have any run as a service restrictions? You can also try to add that user to run as a service locally on that computer (you don't typically need that, but service accounts operate slightly different.)
I used a SQL Script to create the account. The app is currently running under a service account, and has been for over a year. I added that service account to our GPO a while ago so that it would have zero issues with permissions executions and the like. I did not realize you had to have both service and UI under the same account as you said above though (and it is probably why I'm having issues switching). My current setup needs the service account because of how we're storing nuget packages in Azure BLOB (it's been converted into a windows fileshare path, and this was the only way we could make it work when this was setup because it was freeware version and not paid basic at the time), and the way it's connected. Seeing your reply makes me want to entirely redo the setup on another machine to see if I could get this to operate smoother.
@rhessinger I am specifically referring to connecting to SQL.
The Integrated Auth issues I have are from the proget server itself connecting to SQL (also on the same machine). I had the IIS App Pool setup to be default settings and use AppPoolIdentity. It's because of this that I created login for it under Domain\ProgetServerName$ in SQL, and tried granting it dbo and proget_user roles on the Proget DB it created under LocalHost\Indedo when it installed MSSQL. Because Integrated Authentication against it wasn't working, I had tried and failed to reconfigure it to use a service account on the app's configuration files and in the app pool itself by specifying the service account (it still only wanted to use Integrated Auth for some reason like I mentioned in my last reply).
I hope this clarifies it.
@rhessinger I wasn't able to disable integrated Auth. That was one of the peculiar things about my problem. I created a connection string and added it via the Inedo Hub launcher, and also through the shared configuration file*. After restarting the service and IIS after each change, ProGet still only acted as though I had failed login via Integrated Auth, even though I clearly had a password specified and the flag for Interated Auth was no longer in the db connection string.
Setup:
Last Night I tried to switch ProGet from using the Integrated Web Server, and host it on IIS. I followed the documentation on the website and installed all components, however It failed to login to SQL for the server. I opened SSMS and granted it every role and permission I possibly could, including the ProGet User Role that was in the database. However it still fails to login for the server via integrated Auth. I tried a few times to switch this to a service account with the documentation listed for editing the shared config, but despite my iis and service resets it never treated the shared config as updated.
This only happened when I uninstalled the WebService and tried to use IIS. After about 4 hours of this I deleted IIS and reinstalled the webserver service, and it all was fine.
How should I proceed?