2013-10-03 71 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中注入的Ignore路由引起的,將它移動到路由集合中會手動修復問題。發生這種情況是因爲您沒有爲其他控制器手動定義路由,所以.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

這個bug存在於原始文章創建時,但現在已經修復了幾個版本(我是JSNLog的作者)。

+0

我使用Angular 2和Web API。 我的客戶地址(http:// localhost:4200)與服務器地址(http:// localhost:23900)分開,但在發佈內容時使用本地地址。我該如何改變它? POST http:// localhost:4200/jsnlog.logger 404(Not Found) – BehrouzMoslem