Rik*_*son 4 iis signalr iis-8 windows-server-2012
我正在尝试在Visual Studio 2012中构建一个SignalR应用程序.我的问题是它在Visual Studio调试(在Windows 7上使用Visual Studio 2012)下运行良好,但是当我尝试在Windows Server 2012上的IIS 8上部署应用程序时,该应用程序只是显示index.html页面.
我决定尝试缩小问题是在我的代码中还是在SignalR中.我编写了http://www.asp.net/signalr/overview/getting-started/tutorial-getting-started-with-signalr中显示的SignalR教程.这在Visual Studio下工作正常,但再一次,除了在IIS下显示静态页面之外,它不会做任何事情.
我已经尝试了这里列出的一些方法:Signalr/Hub没有在IIS 7中加载但在Visual Studio中正常工作,但它们似乎都没有工作.
And*_*own 26
假设你真的想看index.html(即你的问题不是"一个空的index.html显示而不是我的聊天页面chat.html"),那么听起来就像当你在聊天页面输入内容时它没有显示为连接到聊天的其他浏览器窗口中的聊天.
我会尝试一些基本的测试.我将假设:
Microsoft.AspNet.SignalR.Core.dll,Microsoft.AspNet.SignalR.Owin.dll,Microsoft.AspNet.SignalR.SystemWeb.dll和其他人).我会尝试以下测试:
yourdomainnamehere.com/index.html(或重新加载,如果你已经在那里)index.htmlsignalr/hubssignalr/negotiate (带有查询字符串)signalr/connect (带有查询字符串)所以:
如果您看到,但不是4.1,那么ASP.NET路由存在问题.检查您是否有此作为的第一行中的Application_Start:
protected void Application_Start(object sender, EventArgs e)
{
// Register the default hubs route: ~/signalr/hubs
RouteTable.Routes.MapHubs();
}
Run Code Online (Sandbox Code Playgroud)如果你看到了,但不是4.2或5.1那么你的javascript就会出现问题,导致$.connection.hub.start()代码被调用.
现在,您需要打开信号器上的客户端登录.在index.html聊天页面中,您可以看到该$.connection.hub.start().done(function () {行,添加以下代码,以便代码显示:
$.connection.hub.logging = true;
$.connection.hub.start().done(function () {`
Run Code Online (Sandbox Code Playgroud)
再次打开浏览器开发工具,然后切换到控制台选项卡.现在加载页面并发送聊天.查看您获得的错误消息(如果有).成功打开页面并发送聊天消息应该生成一个日志,例如:
LOG: [12:34:56 UTC+0100] SignalR: Negotiating with '/signalr/negotiate'.
LOG: [12:34:56 UTC+0100] SignalR: This browser doesn't support SSE.
LOG: [12:34:56 UTC+0100] SignalR: Binding to iframe's readystatechange event.
LOG: [12:34:56 UTC+0100] SignalR: Now monitoring keep alive with a warning timeout of 13333.333333333332 and a connection lost timeout of 20000
LOG: [12:34:56 UTC+0100] SignalR: Triggering client hub event 'broadcastMessage' on hub 'ChatHub'.
Run Code Online (Sandbox Code Playgroud)
使用您的信号器终端网站,创建一个新页面:
TestAspNet.aspx.<asp:Label runat="server" ID="lblTest"></asp:Label>Page_Load:this.lblTest.Text = DateTime.Now.ToLongTimeString();现在将其部署到您的Web服务器,然后导航到http://yourdomainnamehere.com/TestAspNet.aspx.如果这显示当前服务器时间,则您知道ASP.NET已安装在服务器上.如果没有,那么有两种选择:
yourdomainnamehere.com如果您认为另一个站点可能正在使用主机头,那么您可以使用powershell在Win Server 2102上轻松检查:
Import-Module WebAdministration
Get-WebBinding |? bindingInformation -match .*mydomainname.com.* | ft protocol, bindingInformation, ItemXPath -AutoSize
Run Code Online (Sandbox Code Playgroud)
站点名称和ID显示在结果列下 ItemXPath
| 归档时间: |
|
| 查看次数: |
21439 次 |
| 最近记录: |