Я неоднократно получаю внутреннюю ошибку сервера 500 при попытке сделать простой вызов контроллеру веб-API DNN. Я не получаю эту ошибку на моей машине разработки и не получаю ее на одном из наших серверов развертывания. Однако проблема заключается в одном из наших серверов развертывания ; и я хотел бы выяснить, почему.Ошибка сервера веб-API DNN
Рассмотрим следующий пример, упрощенно контроллер API в TheBestController.cs
namespace MyTestLibrary.Controllers
{
public class TheBestController : DnnApiController
{
[DnnAuthorize]
[HttpPost]
public HttpResponseMessage TestMe()
{
return Request.CreateResponse(HttpStatusCode.OK, "I'm working");
}
}
}
С этим RouteMapper в RouteMapper.cs
using DotNetNuke.Web.Api;
namespace MyTestLibrary
{
public class RouteMapper : IServiceRouteMapper
{
public void RegisterRoutes(IMapRoute mapRouteManager)
{
mapRouteManager.MapHttpRoute("TheBestController", "default", "{controller}/{action}", new[] { "MyTestLibrary.Controllers" });
}
}
}
С следующего вызова AJAX из моего JavaScript:
$.post("DesktopModules/MyTestLibrary/API/TheBest/TestMe", function(data) {
alert(data);
});
Я удостоверился, что все правильные разрешения установлены для приложения DNN в IIS (а также отражены те и другие другие соответствующие настройки, которые находятся на нашем сервере, который работает). Я поместил скомпилированный файл MyTestLibrary.dll в папку bin на сайте DNN и поместил файл javascript в папку Ресурсы/Shared/scripts на сайте DNN. Сайт DNN читает javascript без проблем, и я не использую модуль (и не хотел бы, потому что я хочу, чтобы весь мой код легко переносился на сайт MVC).
Я также попытался использовать тег [AllowAnonymous]
на методе контроллера (безрезультатно).
Версия DNN на всех машинах - 07.01.01, а на двух серверах работает Server 2008 R2 64bit. В dev-машине работает Win 7 64 бит.
Любые идеи?
Вы вошли в среду, в которой работаете, а не тот, который этого не делает? Зашел с учетной записью DNN с правами администратора? –
@ChrisHammond Я зарегистрирован в DNN как хост. сервер развертывания, который имеет эту работу, я могу войти в систему как любой пользователь, а вызовы API работают просто отлично – rwisch45
@ChrisHammond Когда на сайт установлен «нормальный» DNN-модуль, знаете ли вы, есть ли какие-либо специальные разрешения для проверки подлинности установить где-нибудь в базе данных или где-либо еще в каталоге сайта? – rwisch45