VS2013浏览器链接"路径控制器'/ 9ac086a69364466a841e03e001f946fd/arterySignalR/ping'找不到."

Fat*_*tal 41 asp.net-mvc signalr visual-studio-2013

自从更新到VS2013后,我们在运行我们的(MCV4)Web应用程序时收到此错误:

The controller for path '/9ac086a69364466a841e03e001f946fd/arterySignalR/ping' could not be found.
Run Code Online (Sandbox Code Playgroud)

我知道它与浏览器链接有关,虽然我不确定我们需要做些什么来使其正常工作.我们需要进行一些配置更改才能支持这项新功能吗?

san*_*rnc 39

我禁用了浏览器链接.这个链接的第二个#4.

http://blogs.msdn.com/b/webdev/archive/2013/06/28/browser-link-feature-in-visual-studio-preview-2013.aspx

  • 用于禁用浏览器链接的按钮位于"标准"工具栏上 (4认同)

Tod*_*odd 14

如果您希望浏览器链接的优点但不希望缺少控制器路径异常,则可以向路由集合添加忽略正则表达式.这就是我做的:

public static void RegisterRoutes(RouteCollection routes)
{
    routes.IgnoreRoute("{resource}.axd/{*pathInfo}");

#if DEBUG
    routes.IgnoreRoute("{*browserlink}", new { browserlink = @".*/arterySignalR/ping" });
#endif

    //...
}
Run Code Online (Sandbox Code Playgroud)

这个正则表达式的技术是由Phil Haack这个帖子提供的.


Mat*_*ius 8

在VS2013 @Todd的解决方案对我不起作用,所以我自己制作了.
希望它可以节省你一些时间.

public static void RegisterRoutes(RouteCollection routes)
{
    routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
#if DEBUG
    routes.IgnoreRoute("{*browserlink}", new { browserlink = @".*__browserLink.*" });
#endif
}
Run Code Online (Sandbox Code Playgroud)


App*_*lus 7

将以下内容添加到您的根目录web.config:

<appSettings>
    <add key="vs:EnableBrowserLink" value="false" />
</appSettings>
Run Code Online (Sandbox Code Playgroud)


N. *_*len 5

这恰好是SignalR的已知问题,并已在SignalR 2.0.1和1.1.5中得到修复:

2.0.1:https://github.com/SignalR/SignalR/issues/2569(尚未发布)
1.1.5:https://github.com/SignalR/SignalR/issues/2570(尚未发布)

简而言之,没有什么可以做的改变它,应该等待下一个版本的浏览器链接,它有一个更新版本的SignalR.