我正在尝试运行示例signalR代码。当我在inbuild Webserver中运行它时它工作正常。但是当我在virtualDirectory中托管代码时会出现以下错误
第35行: 对象为空
归结为它无法找到AUTOGenerated signalR / Hubs文件......
我有以下代码
<script src="Scripts/jquery-1.6.4.min.js" ></script>
<script src="Scripts/jquery.signalR-1.0.1.min.js"></script>
<script src="signalr/hubs" type="text/javascript"></script>
我使用了fiddler,它告诉我它正在按照以下方向寻找文件
GET http://myserver/SignalRChat/signalr/hubs
404 Not Found(text / html)GET http://myserver/SignalRChat/signalr/hubs
404 Not Found(text / html)
我已将以下行更改为所有这些,但它们似乎都无法正常工作
<script type="text/javascript" src="/signalr/hubs">
<script type="text/javascript" src="~/signalr/hubs">
或
<script type="text/javascript" src="<%= ResolveUrl(" hubs="" signalr="">// // ]]></script>
没有什么工作......任何人都可以建议我
答案 0 :(得分:2)
虚拟目录似乎未正确映射到物理目录。 / signalr / hubs url未指向物理目录中的正确位置。您可能需要修改Routes.MapHubs()中的路径,以确保它映射到物理目录中的正确位置。
答案 1 :(得分:2)
我也有类似的问题,它是虚拟目录的问题。
尝试替换
<script type="text/javascript" src="~/signalr/hubs">
与
<script type="text/javascript" src="~/SignalRChat/signalr/hubs">
希望有所帮助
答案 2 :(得分:1)
来自http://sylvester-lee.blogspot.com.au/2014/03/aspnet-signalr.html 我的解决方案是 Startup.cs
public void Configuration(IAppBuilder app) {
ConfigureAuth(app);
var hubConfiguration = new HubConfiguration();
hubConfiguration.EnableDetailedErrors = true;
hubConfiguration.EnableJavaScriptProxies = true;
app.MapSignalR("/signalr", hubConfiguration);
}
在aspx文件中:&lt; script src =&#39;&lt;%:ResolveClientUrl(&#34;〜/ signalr / hubs&#34;)%&gt;&#39;&gt;&lt; / script&gt; < / p>
答案 3 :(得分:0)
我的应用程序主要是客户端的html和js,在尝试在新的Windows 10 PC上运行后,我收到了类似的错误 - 直到我意识到我没有在IIS中启用ASP.NET (运行“程序和功能” - >> Internet信息服务 - &gt;万维网服务 - &gt;我的情况下是ASP.NET 4.7)