Dynamic IIS Compression Module and Vary: Accept-Encoding Header is not overwritten - asp.net-mvc

When you enable dynamic content compression on a computer that is running Windows Server 2008, a Vary header is always overwritten as "Accept-Encoding.". You cannot change it by code.
This hotfix http://support.microsoft.com/kb/2877816 resolves the issue for serveral versions but it doesn't apply to Windows Server 2008.
Is there another hotfix for Windows Server 2008?

Related

TFS Build Agent Can't Connect to Package Feed

A little info on our setup:
On-Prem TFS 2018 Update 2 (running as domain Service Account A)
Separate Win2k16 VM hosting a build agent (using a domain Service Account B to run the agent)
Package feed hosted inside a collection on TFS
So this has worked for a few months now (the new piece being the package feed for our own-developed NuGet packages). On an MVC project utilizing our build servers, the NuGet Restore task fails when trying to connect to our package feed. On fail, the message is:
http://TFS_URL:8080/tfs/Development/_packaging/CustomNuGetFeed/nuget/v3/index.json: Unable to load the service index for source http://TFS_URL:8080/tfs/Development/_packaging/CustomNuGetFeed/nuget/v3/index.json.
Response status code does not indicate success: 401 (Unauthorized).
That's all the info that the build log spits out; I dove deeper and spun up WireShark and got the following:
Request
GET /tfs/Development/_packaging/CustomNuGetFeed/nuget/v3/index.json HTTP/1.1
user-agent: NuGet Command Line/4.4.1 (Microsoft Windows NT 6.2.9200.0)
X-NuGet-Client-Version: 4.4.1
Accept-Language: en-US
Accept-Encoding: gzip, deflate
Authorization: Basic <base64_token>
Host: tfs:8080
Response
HTTP/1.1 401 Unauthorized
Content-Type: text/html
Server: Microsoft-IIS/8.5
X-TFS-ProcessId: d9a45aba-cc82-4f2c-98a3-e4441bfa456f
ActivityId: e780f2d6-1216-46ac-8c66-cb89379c7811
X-TFS-Session: e780f2d6-1216-46ac-8c66-cb89379c7811
X-VSS-E2EID: e780f2d6-1216-46ac-8c66-cb89379c7811
X-FRAME-OPTIONS: SAMEORIGIN
WWW-Authenticate: Bearer
WWW-Authenticate: Negotiate
WWW-Authenticate: NTLM
WWW-Authenticate: Basic realm="tfs"
X-Powered-By: ASP.NET
P3P: CP="CAO DSP COR ADMa DEV CONo TELo CUR PSA PSD TAI IVDo OUR SAMi BUS DEM NAV STA UNI COM INT PHY ONL FIN PUR LOC CNT"
Lfs-Authenticate: NTLM
X-Content-Type-Options: nosniff
Date: Tue, 16 Oct 2018 19:57:17 GMT
Content-Length: 1293
Response page message
401 - Unauthorized: Access is denied due to invalid credentials.
You do not have permission to view this directory or page using the credentials that you supplied.
However, there's a .NET Core app that still restores packages fine as far as I can tell (unless it's only retrieving the packages from cache).
The credentials for the service account have not changed at all. I've made sure the service accounts have access to the feed, according to these docs: https://learn.microsoft.com/en-us/azure/devops/artifacts/feeds/feed-permissions?view=vsts&tabs=previous-nav
I've also tried disabling Basic Auth in IIS for the TFS site on the TFS server, and enabling Windows auth. Neither of which worked either.
So I'm at a loss at what the issue could be from all that I've tried/looked into.
TL;DR; nuget was too old. Updating it helped.
We had the same problem after setting up a new build agent machine for a TFS 2018 on Windows 2019. However, we did not use wireshark to inspect traffic, so this might be unrelated. Same symptoms though: one solution worked (using paket), the other didn't work (using nuget).
The issue was that the other solution used a nuget (version 2.x) from a committed thirdparty directory. Nuget is designed to use a 'global' nuget from %localappdata%\nuget if available. And that global nuget version didn't exist. Updating nuget as the build agent user fixed the issue, and placed a recent nuget version into %localappdata%:
nuget.exe update -self
I think that the TFS 2018 requires NTLM authentication instead of basic authentication (which still seemed to be supported by TFS 2017). It still strikes me as weird that the installed VS 2017.9.5 didn't update nuget.
Even after upgrading to Azure DevOps Server 2019.0.1, I was still receiving a 401 Unauthorized when attempting to authenticate to a package feed that was hosted in the same collection.
Workaround
The work around I had used was to place the package binaries inside the build server's package cache folder, located here:
C:\Users\.nuget\packages
Working Solution
However a solution has been found with the help of Microsoft's VS Community. An updated cred provider needs to be used with the NuGet Restore task.
Nuget 4.8+ needs to be used for this to work, and then 2 build variables need to be added to the build definition:
NuGet_ForceEnableCredentialProviderV2 = true
NuGet.ForceEnableCredentialProvider = false
According to a Microsoft rep, this will be enabled by default on ADOS 2019.1 update.
You can view the full thread here:
https://developercommunity.visualstudio.com/content/problem/360323/tfs-build-agent-cant-connect-to-package-feed.html

Cannot access Team Foundation Server using port 8080

I have just installed a Team Foundation Server 2015 update 3 on a Windows Server 2016, the web interface of the TFS is accessible on the server itself (http://192.168.0.10:8080/tfs), but if I try the same address on my client it does not work, but it does respond on http://192.168.0.10. I have checked that port 8080 is allowed in the firewall of the server. What could be the issue?
It was simply the firewall that was blocking the site, since I added a rule for this "8080" it worked as excpected. And even if its not in the list over supported OS it do work with Windows Server 2016.
TFS 2015 only supports the following server operating systems:
Windows Server 2012 R2 (Essentials, Standard, Datacenter)
Windows Server 2012 (Essentials, Standard, Datacenter)
Windows Server 2008 R2 (minimum SP1) (Standard, Enterprise, Datacenter)
Windows Server 2016 is not supported currently.

TFS 2010 TF31002: Unable to connect to this Team Foundation Server

i have installed TFS 2010 on WS 2008 R2 more than two years and every things worked fins till i have installed an app on the server which i think it change some seting on IIS/server. and after that i can not access tfs web services even on the TFS server localy!!.
what is the problem.
after that for resolving all security issues I changed TFS applicaion pool's identification to network administrator. tfs account is NT AUTHORITY\NETWORK SERVICE. i can create team project collection from the tfs administration console. i checked network traffic with fiddler for accessing http:///tfs and response was:
HTTP/1.1 404 Not Found
Server: Microsoft-IIS/7.5
Persistent-Auth: true
X-Powered-By: ASP.NET
Date: Tue, 16 Dec 2014 11:49:24 GMT
Content-Length: 0
If you have broken the server by installing something then I would recommend building a new dedicated TFS server.
Option 1) Create a new clean server for TFS. Install SQL and restore all of the databases from your old server. Then install TFS 2013.
Option 2) if you do not have room for a dedicated TFS server you should create a temporary instance to get working and then push all of your data to VSO (http://tfs.visualstudio.com)
If you run TFS locally you should be aware that TFS owned both the server and the database server that it is installed on. It is an application that includes those components.

How to fix access forbidden error in Windows XP IIS?

ASP .NET MVC2 application is installed in Windows XP , IIS 5.1 .
After opening several pages or pressing F5 file requests like
GET http://1.1.1.1:81/apps/Scripts/jquery.form.js HTTP/1.1
Accept: application/javascript, */*;q=0.8
Referer: http://1.1.1.1:81/app/Grid?_entity=Yksus6
return error
HTTP 403.9 - Access Forbidden: Too many users are connected
Internet Information Services
Browser (IE9 ) should limit max number of concurrent connections to 3 . So Windows XP 10 connection limit should not occur here.
I tried in localhost also and same 403.9 exception occurs. Localhost should not have XP 10 connection limit.
Ideas to resolve:
Can disabling http 1.1 in iis fixes this so that HTTP 1.0 is used:
I looked in IIS manager properties but havent found place where to disable 1.1
I Googled for "disable http 1.1 in iis" but havent found any information.
So I dont know how to disable http 1.1
XP supports also IIS 7 developemnt server. Should I try to install this ?
How to use asp .net mvc application in XP ?

Using TFS2010 client in a 64-bit only IIS process

I'm finding conflicting information regarding the TFS 2010 Client assemblies. I wish to connect to a TFS 2010 server from an ASP.Net application running on IIS 7.5 in a 64-bit only application pool.
I x-copied all the TFS client assemblies into the bin folder of my web application (to avoid having to install the TFS client onto the web server) - but get a bad image format exception from the following assemblies:
Microsoft.TeamFoundation.WorkItemTracking.Client.Cache.dll
Microsoft.TeamFoundation.WorkItemTracking.Client.RuleEngine.dll
Microsoft.TeamFoundation.WorkItemTracking.Client.DataStore.dll
They all appear to be 32bit only assemblies.
Is there a way to work around this, or does the application pool have to be enabled for 32bit applications, before you can use the TFS 2010 client assemblies?
See my blog post on Installing Just the Server Components of TFS. That will let you get the 64-bit components you need onto your web server.

Resources