2013-07-20 4 views
2

Я бегу .NET на моно 2.10, разработанный с ServiceStack 3.9.55Mono Views рендеринга (ошибки?) Число, в IIS нормально

Когда я запустить веб-сайт с IIS Express все в порядке, но с mono 2.10 и fastcgi-server4 страница отображает дополнительные числа, такие как 0 и f7e.

Я уже тестировал это Ubuntu 12, Debian 6 и 7, и отображаются те же номера.

См. Здесь. http://aaviseu.guilhermecardoso.pt/home

Что вы думаете об этом?

ОБНОВЛЕНИЕ: эта ошибка появляется только на 2.10 и связана с кодировкой chuncked (на 2x). Я не знаю, когда это было исправлено, но я использую 3.2.7 без каких-либо проблем.

+0

Кроме Nginx, вы можете проверить с апача? – linquize

+0

Я не могу получить бритву для рендеринга представлений с модным моном (я скопировал те же сборки, которые я тестирую на nginx) –

ответ

1

Похоже, у вас проблема с аналогичной проблемой: Binary data corrupted when hosting ServiceStack in Mono + FastCGI - f7e, вероятно, размер данных (3966 байт) ,

Редактировать:

Это связано с блочной передачи (введен в HTTP 1.1). Мне удалось обойти мою проблему, заставив запрос использовать HTTP 1.0.

На мой вопрос knocte предложил патч для моно, что может исправить проблему:

Patch: https://bugzilla.xamarin.com/attachment.cgi?id=3356

Файл: https://github.com/mono/mono/blob/master/mcs/class/System.Web/System.Web/HttpResponse.cs

+0

К сожалению, я недостаточно квалифицирован для этого (пока!). Это то, что я сделал: forked mono projected, сделал этот патч на ветке 2.10 в моем репо (из github я редактировал этот файл), и я установил mono из моего git repo, выбрав ветку 2.10. Я все еще получаю номера в ответ, но я не уверен, что я успешно установил модифицированную вилку. Знаете ли вы, как я должен это делать должным образом? –

+0

Вот что я сделал бы. Для отладки он просто временно добавляет сообщение журнала 'if (worker_request.GetHttpVersion() ==" HTTP/1.1 ") { \t строка GatewayIface = context.Request.ServerVariables [" GATEWAY_INTERFACE "]; \t use_chunked = (GatewayIface == null ||! GatewayIface.StartsWith ("CGI")); \t \t используя (StreamWriter ш = File.AppendText ("/ TMP/my_mono_fork.log")) \t \t w.WriteLine ("use_chunked = {0} GatewayIface = {1}", use_chunked, GatewayIface); } else \t use_chunked = false; ' – woli