2013-10-03 2 views
0

После того, как я установил пакет JSNLog и связал его с моим проектом MVC, у меня возникает ошибка, когда я нажимаю ссылку.Не удалось реализовать JSNLog для решения ASP.NET MVC

Например,

<a href="@Url.Action("Bar", "Foo")">Link</a> 

обычно производят

<a href="/Foo/Bar">Link</a> 

, но после того, как начать использовать JSNLog, теперь производят

<a href="/jsnlog.logger?action=Bar&controller=Foo">Link</a> 

, который направит на ссылку

http://localhost:51745/jsnlog.logger?action=Bar&controller=Foo 

который показывает

Сведения об исключении: System.NullReferenceException: ссылка на объект не установлено на экземпляр объекта.

Я считаю, что JSNLog пытается отправить событие исключения или журнала на сервер, когда у него есть шанс получить доступ к серверу.
Я пропустил что-то, чтобы сделать этот функционал?

ответ

3

Это фактически вызвано маршрутом Игнорировать, который они вводят в App_Start, и перемещение его в коллекцию маршрутов вручную исправляет проблему. Это происходит потому, что вы не вручную определяете маршруты для остальных контроллеров, поэтому .net пытается разрешить первое обнаруженное определение.

В App_Start \ JSNLogConfig.cs вынимают

RouteTable.Routes.Insert(0, new Route("jsnlog.logger/{*pathInfo}", new StopRoutingHandler()));

В RouteConfig.cs добавить

routes.IgnoreRoute("jsnlog.logger/{*pathInfo}");

И все ваши другие маршруты должны начать работать нормально.

+0

Спасибо! Ваше решение сделало волшебство! –

4

Эта ошибка существует, когда исходный пост был создан, но теперь исправлено несколько версий (я автор JSNLog).

+0

Я использую Angular 2 и Web API. Адрес моего клиента (http: // localhost: 4200) отделен от адреса сервера (http: // localhost: 23900), но при размещении контента он использует локальный адрес. Как я могу его изменить? POST http: // localhost: 4200/jsnlog.logger 404 (не найдено) – BehrouzMoslem