Ну, после недели попыток почти всего, что я мог найти здесь и в других местах, чтобы решить эту проблему, я наконец-то поднял флаг капитуляции и открыл это для моих более опытных товарищей. По сути, у меня есть простое приложение для интрасети, которое находится на сервере VMed Windows 2012 R2 / IIS8, на котором также размещается SQL 2014 (я знаю, я знаю). Я пытаюсь выполнить автозаполнение на двух текстовых полях из таблицы SQL. В VS2017 он работает отлично, но когда я пытаюсь запустить его из IIS8, я получаю сообщение об ошибке «Не удалось загрузить ресурс: сервер ответил с состоянием 500 (Внутренняя ошибка сервера)».
Вот HTML:
<script type="text/javascript">
$(function () {
$("#<%=txtSAPLoc.ClientID%>").autocomplete({
source: function (request, response) {
var param = { locName: $('#<%=txtSAPLoc.ClientID%>').val() };
$.ajax({
method: "POST",
url: "CdtCreateRecord.aspx/GetLoc",
data: JSON.stringify(param),
dataType: "json",
contentType: "application/json; charset=utf-8",
dataFilter: function (data) { return data; },
success: function (data) {
response($.map(data.d, function (item) {
return {
value: item
}
}))
},
error: function (XMLHttpRequest, textStatus, errorThrown) {
alert(errorThrown);
}
});
},
minLength: 2
});
});
$(function () {
$("#<%=txtSAPInst.ClientID%>").autocomplete({
source: function (request, response) {
var param = { instName: $('#<%=txtSAPInst.ClientID%>').val() };
$.ajax({
method: "POST",
url: "CdtCreateRecord.aspx/GetInst",
data: JSON.stringify(param),
dataType: "json",
contentType: "application/json; charset=utf-8",
dataFilter: function (data) { return data; },
success: function (data) {
response($.map(data.d, function (item) {
return {
value: item
}
}))
},
error: function (XMLHttpRequest, textStatus, errorThrown) {
alert(errorThrown);
}
});
},
minLength: 2
});
});
</script>
И соответствующий код позади:
[WebMethod]
[ScriptMethod(UseHttpGet = true, ResponseFormat = ResponseFormat.Json)]
public static List<string> GetLoc(string locName)
{
List<string> Loc = new List<string>();
string query = string.Format("SELECT DISTINCT loc FROM Locations WHERE loc LIKE '%{0}%'", locName);
using (SqlConnection con = new SqlConnection("Server=usmac2dgsyntax;Database=LREC_ADB;Trusted_Connection=Yes;"))
{
using (SqlCommand cmd = new SqlCommand(query, con))
{
con.Open();
SqlDataReader reader = cmd.ExecuteReader();
while (reader.Read())
{
Loc.Add(reader.GetString(0));
}
}
}
return Loc;
}
[WebMethod]
[ScriptMethod(UseHttpGet = true, ResponseFormat = ResponseFormat.Json)]
public static List<string> GetInst(string instName)
{
List<string> Inst = new List<string>();
string query = string.Format("SELECT DISTINCT inst FROM Institutions WHERE inst LIKE '%{0}%'", instName);
using (SqlConnection con = new SqlConnection("Server=usmac2dgsyntax;Database=LREC_ADB;Trusted_Connection=Yes;"))
{
using (SqlCommand cmd = new SqlCommand(query, con))
{
con.Open();
SqlDataReader reader = cmd.ExecuteReader();
while (reader.Read())
{
Inst.Add(reader.GetString(0));
}
}
}
return Inst;
}
Это выборка статей из stackoverflow, с которыми я ранее консультировался: