简体   繁体   English

SignalR与Mono和apache一起运行:HTTP 500错误(在SignalR代码中)

[英]SignalR run with Mono and apache: HTTP 500 error (in SignalR code)

I've been running SignalR on mono with both self-hosting on localhost and on IIS. 我一直在Mono上运行SignalR,并在localhost和IIS上进行自我托管。 But self-hosting with mono on a server didn't work yet 但是在服务器上使用单声道进行自我托管尚不起作用

The full error I get on the webpage is: 我在网页上看到的完整错误是:

System.InvalidOperationException Operation is not valid due to the current state of the object. System.InvalidOperationException由于对象的当前状态,该操作无效。

Description:` HTTP 500.Error processing request.
Details: Non-web exception. Exception origin (name of application or object): Microsoft.Owin.Host.SystemWeb.
Exception stack trace:
  at Microsoft.Owin.Host.SystemWeb.IntegratedPipeline.IntegratedPipelineContextStage.BeginEvent (System.Object sender, System.EventArgs e, System.AsyncCallback cb, System.Object extradata) <0x404788f0 + 0x0074b> in <filename unknown>:0 
  at System.Web.HttpApplication+<RunHooks>c__Iterator0.MoveNext () <0x404715e0 + 0x00367> in <filename unknown>:0 
  at System.Web.HttpApplication+<Pipeline>c__Iterator1.MoveNext () <0x40468000 + 0x01a65> in <filename unknown>:0 
  at System.Web.HttpApplication.Tick () <0x40465950 + 0x00057> in <filename unknown>:0 

In the Apache error log: 在Apache错误日志中:

Cannot access a closed Stream.
  at System.IO.MemoryStream.Write (System.Byte[] buffer, Int32 offset, Int32 count) <0x4006e720 + 0x0008b> in <filename unknown>:0
  at System.IO.BinaryWriter.Write (Int32 value) <0x4006e660 + 0x00087> in <filename unknown>:0
  at Mono.WebServer.ModMonoRequest.IsConnected () <0x40540670 + 0x0001f> in <filename unknown>:0
  at Mono.WebServer.Apache.ModMonoWorker.IsConnected () <0x40540640 + 0x0001b> in <filename unknown>:0
  at Mono.WebServer.ModMonoWorkerRequest.IsClientConnected () <0x405405b0 + 0x00030> in <filename unknown>:0
  at System.Web.HttpResponse.get_IsClientConnected () <0x40540570 + 0x0002a> in <filename unknown>:0
  at System.Web.HttpResponseWrapper.get_IsClientConnected () <0x40540540 + 0x0001b> in <filename unknown>:0
  at Microsoft.Owin.Host.SystemWeb.OwinCallContext.CheckIsClientConnected (System.Object obj) <0x40540490 + 0x00051> in <filename unknown>:0
  at System.Threading.Timer+Scheduler.TimerCB (System.Object o) <0x4053daf0 + 0x001a7> in <filename unknown>:0
  at System.Threading.QueueUserWorkItemCallback.System.Threading.IThreadPoolWorkItem.ExecuteWorkItem () <0x403d3c60 + 0x0002f> in <filename unknown>:0
  at System.Threading.ThreadPoolWorkQueue.Dispatch () <0x403d09b0 + 0x0021a> in <filename unknown>:0
  at System.Threading._ThreadPoolWaitCallback.PerformWaitCallback () <0x403d0980 + 0x00010> in <filename unknown>:0

My code looks just fine, my program.cs contains: 我的代码看起来还不错,我的program.cs包含:

class Program
{
     static void Main(string[] args)
    {
        string url = "http://*:80";
        using (Microsoft.Owin.Hosting.WebApp.Start<Startup>(url))
        {

        }
    }
}

I have no idea what to do, should I look to change something in my code to let it work with mono? 我不知道该怎么办,是否应该更改代码中的某些内容以使其与Mono一起工作?

I'm going to use SignalR Core, problem solved! 我将使用SignalR Core,问题已解决! :) :)

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

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