Я написал веб-приложение, в котором пользователь может искать в общей папке файлы, а затем выбранный файл будет отображаться в браузере.
Все работает нормально, когда я запускаюприложение через Visual Studio.
Но если я пытаюсь запустить его через IIS, я получаю ошибку 500 (Внутренняя ошибка сервера) при выполнении JSON, который находится в общих папках.
Есть ли какие-либоограничение разрешений?Буду ли я запускать его через VS, он использует мои учетные данные, но не будет, пока я запускаю его через IIS?Может быть, общая папка должна иметь права на чтение для группы IIS_IUSR?Я правильно понял?
public JsonResult GetFiles(string MCodeID)
{
if (MCodeID == null)
{
throw new ArgumentNullException(nameof(MCodeID));
}
List<Files> filelist = new List<Files>();
//Searching Files in //192.168.1.191
string path = @"\\192.168.1.191\Materials Project\";
string searchPattern = MCodeID + "*";
DirectoryInfo fi = new DirectoryInfo(path);
if (fi.GetFiles(searchPattern, SearchOption.AllDirectories).Any())
{
foreach (var file in fi.GetFiles(searchPattern, SearchOption.AllDirectories))
{
var changeSlash = file.FullName.Replace('\\', '/');
var filepath = changeSlash.Replace("//192.168.1.191/Materials Project", "");
filelist.Add(new Files
{
FCodeID = filepath,
FDescr = file.Name + " - " + Math.Round((Convert.ToDouble(file.Length) / (1024*1024)), 2) + " MB",
FSize = Math.Round((Convert.ToDouble(file.Length) / (1024 * 1024)), 2)
});
}
filelist.Insert(0, new Files { FCodeID = "0", FDescr = "--Select File--" });
return Json(new SelectList(filelist, "FCodeID", "FDescr"));
}
else
{
filelist.Insert(0, new Files { FCodeID = "0", FDescr = "--No File--" });
return Json(new SelectList(filelist, "FCodeID", "FDescr"));
}
}
<script type="text/javascript">
$(document).ready(function () {
$("#MCodeID").on("change", function () {
var url = '@Url.Content("~/")' + "Materials/GetFiles";
var ddlsource = "#MCodeID";
var items = "<option value='0'>--Select File--</option>";
$("#FCodeID").html(items);
var items = " ";
$("#pdfviewer").hide();
$(".loading-eclipse").show();
$.getJSON(url, { MCodeID: $(ddlsource).val() }, function (data) {
$("#FCodeID").empty();
$.each(data, function (i, file) {
if (file.value.includes("in Use"))
items += "<option value='" + file.value + "'" + "style='background-color:orange;'>" + file.text + "</option>";
else
items += "<option value='" + file.value + "'>" + file.text;
});
$("#FCodeID").html(items);
$(".loading-eclipse").hide();
$("#FCodeID").show();
});
})
})
</script>
Можно ли использовать учетные данные пользователей при запуске приложения через IIS?