繁体   English   中英

移至IIS7服务器后出现Signalr 404错误

[英]Signalr 404 error after moving to iis7 server

当托管在IIS 8中时,我有一个信号器服务在我的开发环境上运行良好。

使用IIS 7.5将服务移至我们的质量检查服务器时,尝试连接到我的集线器会导致此错误:

System.AggregateException: One or more errors occurred. ---> Microsoft.AspNet.SignalR.Client.HttpClientException: StatusCode: 404, ReasonPhrase: 'Not Found', Version: 1.1, Content: System.Net.Http.StreamContent, Headers:
    {
    Cache-Control: private
    Date: Thu, 06 Mar 2014 20:09:35 GMT
    Server: Microsoft-IIS/7.5
    X-Powered-By: ASP.NET
    Content-Length: 5307
  Content-Type: text/html; charset=utf-8
}
   at Microsoft.AspNet.SignalR.Client.Http.DefaultHttpClient.<>c__DisplayClass2.<Get>b__1(HttpResponseMessage responseMessage)
   at Microsoft.AspNet.SignalR.TaskAsyncHelper.<>c__DisplayClass19`2.<Then>b__17(Task`1 t)
   at Microsoft.AspNet.SignalR.TaskAsyncHelper.TaskRunners`2.<>c__DisplayClass3a.<RunTask>b__39(Task`1 t)
   --- End of inner exception stack trace ---
   at System.Threading.Tasks.Task.ThrowIfExceptional(Boolean includeTaskCanceledExceptions)
   at System.Threading.Tasks.Task.Wait(Int32 millisecondsTimeout, CancellationToken cancellationToken)
   at System.Threading.Tasks.Task.Wait()
   at ConsoleApplication2.Program.Main(String[] args)
---> (Inner Exception #0) Microsoft.AspNet.SignalR.Client.HttpClientException: StatusCode: 404, ReasonPhrase: 'Not Found', Version: 1.1, Content: System.Net.Http.StreamContent, Headers:
{
  Cache-Control: private
  Date: Thu, 06 Mar 2014 20:09:35 GMT
  Server: Microsoft-IIS/7.5
  X-Powered-By: ASP.NET
  Content-Length: 5307
  Content-Type: text/html; charset=utf-8
}
   at Microsoft.AspNet.SignalR.Client.Http.DefaultHttpClient.<>c__DisplayClass2.<Get>b__1(HttpResponseMessage responseMessage)
   at Microsoft.AspNet.SignalR.TaskAsyncHelper.<>c__DisplayClass19`2.<Then>b__17(Task`1 t)
   at Microsoft.AspNet.SignalR.TaskAsyncHelper.TaskRunners`2.<>c__DisplayClass3a.<RunTask>b__39(Task`1 t)<---

我的创业班

[assembly: OwinStartup(typeof(SignalRStartup))]

  public class SignalRStartup
  {
    public void Configuration(IAppBuilder app)
    {
      app.MapSignalR("/restricted/signalr", new HubConfiguration());
    }
  }

并尝试在C#客户端中启动连接

HubConnection foo = new HubConnection("http://localhost/ccwebdev/restricted");
foo.Start().Wait();

质量检查服务器正在运行Windows Server 2008 R2 SP1,因此它应支持无扩展名的URL。

我还尝试将其添加到我的web.config <modules runAllManagedModulesForAllRequests="true"/>

应用程序池处于集成模式,而不是经典模式

我在这里阅读了许多其他类似的SO文章和404的故障排除指南: http//www.asp.net/signalr/overview/signalr-20/troubleshooting-and-debugging/troubleshooting#other ,但是没有运气。

谁能提供我可以尝试的其他任何疑难解答步骤?


编辑

将地图调用更改为app.MapSignalR("/restricted", new HubConfiguration()); 导致在服务启动时引发异常

[InvalidOperationException: Protocol error: Unknown transport.]
   Microsoft.AspNet.SignalR.PersistentConnection.ProcessRequest(HostContext context) +384
   Microsoft.AspNet.SignalR.Hubs.HubDispatcher.ProcessRequest(HostContext context) +502
   Microsoft.AspNet.SignalR.PersistentConnection.ProcessRequest(IDictionary`2 environment) +328
   Microsoft.Owin.Mapping.<Invoke>d__0.MoveNext() +611
   System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() +32
   Microsoft.Owin.Host.SystemWeb.IntegratedPipeline.IntegratedPipelineContext.EndFinalWork(IAsyncResult ar) +208
   System.Web.AsyncEventExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() +434
   System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) +288

您是否尝试手动修补服务器以获取无扩展名的URL? 我不确定服务器2008 R2 SP1是否包含该修补程序-您可以尝试一下:

http://support.microsoft.com/kb/980368

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM