Questa non è davvero una risposta completa, ma forse quello che ho fatto potrebbe aiutare qualcuno ad andare un po 'oltre.
Dopo aver riempito alcuni vuoti non correlati sul ramo dev di Mono (che al momento era v3.99) come AppendTrailingBackslash(), GetBufferlessInputStream() e alcune altre funzioni, sono riuscito a ottenere un'app MVC5 in arrivo e funziona OK su Ubuntu usando XSP4.
Ho quindi provato a utilizzare OWIN e la versione monofase di SignalR.
Ho fatto quanto suggerito in precedenza da Appleman1234, implementare RegisterModule() in HttpApplication.cs per fare ciò che fa Microsoft.Web.Infrastructure.DynamicModuleHelper.DynamicModuleUtility.RegisterModule(). Questo sembra funzionare e inietta la stringa del modulo nella sezione system.web/httpModules senza errori.
Questo, combinato con specificare manualmente l'OwinHttpHandler nel mio system.web:
<system.web>
<compilation debug="true" targetFramework="4.5" />
<httpRuntime targetFramework="4.5" />
<customErrors mode="Off" />
<httpHandlers>
<add verb="*" path="*" type="Microsoft.Owin.Host.SystemWeb.OwinHttpHandler, Microsoft.Owin.Host.SystemWeb" />
</httpHandlers>
</system.web>
e chiamando il default MapSignalR() nella mia configurazione di avvio():
var appBuilder = app.MapSignalR();
e dopo un po 'di hacking del codice SignalR (stavo ottenendo alcuni ReadOnlyException su un NameValueCollection mentre tentava di rimuovere Accept-Encoding dagli header delle richieste ... ho pensato che ci sarei arrivato più tardi), penso di averlo inizializzato fino in fondo al punto in cui potrei almeno sfogliare per/signalr e ottenere indietro alcuni errori significativi (mancante connectionId, protocollo sconosciuto, ecc). Non sono riuscito a testare realmente la funzionalità SignalR, ma sto per farlo utilizzando un programma client separato.
Sto ospitando questo utilizzando xsp4/mono 4.5.
Tuttavia, così facendo penso di clobbered il resto della gestori/gasdotto perché non posso davvero passare a qualsiasi altra cosa nel sito (fogli di stile, script, ecc), come ho un 404
noti anche ovvero:
(1) HttpRuntime.UsingIntegratedPipeline
restituisce false nel contesto di XSP4.
(2) ho dovuto commentare l'eccezione in HttpApplication.cs/AsyncInvoker::Invoke()
, che originariamente ha gettato questa eccezione:
throw new Exception("This is just a dummy");
Detto questo, è semplicemente non ancora abbastanza asincrona e altre forme di sostegno in Mono per ottenere OWIN/SignalR lavorare? Sto pensando che dal UsingIntegratedPipeline
restituisce false che si tratta di un no-go per XSP4?
Hai già risolto il problema? – brian