Это потому, что вы отображаете путь для первых файлов, но не для NewName
.
Таким образом, не было полного пути, чтобы узнать, как переименовать / переместить файл, и ему нужен полный путь для правильной работы.
Если путь не указан, попробуйте переместить его в папку по умолчанию для пула asp.net, который, вероятно, не имеет этих разрешений.
Таким образом, код будет
NewName = System.Web.HttpContext.Current.Request.MapPath("~/Content/ProductImages/"
+ info.SortOrder + "-" + info.ImageID + ".jpg" );
и отладьте эти строки, чтобы проверить правильность каталогов и файлов.