На самом деле это не полный ответ, но, возможно, то, что я сделал, может помочь кому-то получить немного дальше.
После заполнения некоторых несвязанных пустот в ветви dev Mono (которая в то время была v3.99), например AppendTrailingBackslash(), GetBufferlessInputStream() и нескольких других функций, я смог получить приложение MVC5 up и функции OK на Ubuntu с использованием XSP4.
Затем я попытался использовать OWIN и моностроенную версию SignalR.
Я сделал то, что предложил Appleman1234 выше, реализует RegisterModule() в HttpApplication.cs, чтобы выполнить то, что Microsoft.Web.Infrastructure.DynamicModuleHelper.DynamicModuleUtility.RegisterModule(). Кажется, что это работает и вводит строку модуля в раздел system.web/httpModules без ошибок.
В сочетании с ручным указанием OwinHttpHandler в моем 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>
и вызов в моей конфигурации запуска (по умолчанию) MapSignalR():
var appBuilder = app.MapSignalR();
и после взлома до некоторых из кода SignalR (я получал некоторое ReadOnlyException в NameValueCollection, поскольку он пытался удалить Accept-Encoding из заголовков запроса ... Я решил, что доберусь до этого позже), я думаю, что я получил его для инициализации полностью до такой степени, что я мог хотя бы просматривать to/signalr и получить некоторые значимые ошибки обратно (отсутствует connectionId, неизвестный протокол и т. д.). Мне не удалось фактически проверить функциональность SignalR, но я собираюсь сделать это, используя отдельную клиентскую программу.
Я принимаю это с помощью xsp4/mono 4.5.
Однако при этом я думаю, что я затерт остальную часть обработчиков/трубопровода, потому что я не могу просматривать что-нибудь еще на веб-сайте (таблиц стилей, скриптов и т.д.), так как я получаю 404
Также обратите внимание на что:
(1) HttpRuntime.UsingIntegratedPipeline
возвращает false в контексте XSP4.
(2) Я должен был закомментировать исключение в HttpApplication.cs/AsyncInvoker::Invoke()
, который первоначально бросил это исключение:
throw new Exception("This is just a dummy");
Учитывая это, там просто не хватает Асинхронный и другую поддержку в Mono, чтобы получить Owin/SignalR работать? Я думаю, что с UsingIntegratedPipeline
возвращает false, что это не для XSP4?
Вы еще не решили проблему? – brian