C# Convert BLOB to jpg, resize, then back to BLOB
Welcome to CodeReview! I hope you get some good feedback.
Absolute paths
string ID = Request.QueryString[&quot;id&quot;];
string imageFile = &quot;\\\\server\\c$\\inetpub\\wwwroot\\web-app\\images\\&quot; + ID+ &quot;.jpg&quot;;

This has a few issues. First, it's typical for a server to be in a &quot;jail&quot; where it shouldn't have access to the filesystem at large, and should only access data from its own local directory. This is for security purposes. Though I haven't done this in a long time, it seems the ASP.NET way of safely accessing such paths is MapPath.
Second: it's crucially important that you do some validation on ID. In its current state a hacker could easily construct a path navigation exploit where the ID contains ..\..\.. (etc) to explore the rest of the filesystem if the server is misconfigured.
Managing your connection
If connection is an SqlConnection, it implements IDisposable, and as such you should put it in a using. The same is true of SqlCommand.
Add-with-value
You should prefer AddWithValue over a separated Add/.Value assignment here;
sqlCommand.Parameters.Add(&quot;@ID&quot;, SqlDbType.VarChar);
sqlCommand.Parameters[&quot;@ID&quot;].Value = ID;

Read-in-loop
This:
while (dr.Read())
{
    byteImage = (byte[])dr[&quot;BLOB&quot;];
}

should probably not use a loop. Since it seems you expect only one row returned,

Read() once;
assert that it returned true;
assign byteImage;
Read() again;
assert that it returned false.

Streamed image creation
GetResizedImage creates a memory stream. It should not. Response already has an OutputStream, and you should be writing to that directly. The one thing to double-check with this approach is that Content-Length is still set correctly, which is probably only possible if BufferOutput is enabled.
Avoiding files
As to your original question, which I never really addressed:

Is there anything I can change here to skip saving an image on the server and just display it so it doesn't use up a ton of resources?

Yes! As long as you get an image from the database, you always Save() it to the disc. However, this file is only used if the server name is approved. Move your save within the name check, and fewer cases will require disc I/O.
Even further: if this is the only code that touches that file, that file should not exist at all and you should not be doing a round trip to the disc. Once you have your img, pass that to GetResizedImage instead of a path string.
Bug?
There is a mechanism here:
imageFile = HttpRuntime.AppDomainAppPath + &quot;PERSON.GIF&quot;;

which looks like it's supposed to substitute a default image if none is returned from the database. However, that file is never used. This logic needs to be rearranged so that it is. If you get back a null from the database, load this file into your byteImage.