Я предпочитаю решить это так:
string strPath = string.Format("{0}\\{1}.{2}", HttpContext.Current.Server.MapPath("~\\Images"), imageName, ".png");
bitmap.Save(strPath);
Причины, по которым я предпочитаю такой подход:
A) Очень легко пройти через отладчик и посмотреть, что такое strPath, легче понять, что происходит, и исправить, если это не то, что вы ожидаете
Б) Использование «+» для объединения строк - плохая привычка. Он менее читабелен, и каждый раз, когда вы объединяете строки, память перераспределяется ... это означает снижение производительности. Вместо этого вы должны использовать строку. Формат ИЛИ StringBuilder.