2010-05-06 5 views

ответ

5

Я не думаю, что ответ НЕТ в настоящее время ... делать немного поиска Google я нашел различные людей просят несколько пробовать и некоторые вопросы осведомленности ...

https://serverfault.com/questions/165539/redmine-in-ironruby

В настоящее время, Redmine поддерживается только на Ruby 1.8.6 и 1.8.7 и на Ruby Enterprise Edition. В настоящее время предпринимаются усилия, чтобы Redmine работал на jRuby и Rubinius. Поскольку не так много основных разработчиков, работающих под Windows, я бы не стал предполагать, что кто-то активно работает над совместимостью IronRuby. Если вы хотите помочь и запрограммировать необходимые исправления, вы можете сообщить об этом на http://redmine.org.

Redmine, YAML файлы не могут иметь% в них ..

В моих бесплодных усилий, чтобы получить Redmine работает на IronRuby одна из вещей, которые я обнаружил, было то, что линии, подобные этим: «field_done_ratio:% Done» в локальных файлах yaml исключены исключения. если я удалил «%», он сработал (или, по крайней мере, пошел дальше).

(сдался после этих 16hours, мое последнее препятствие было бесконечное перенаправление при доступе к LOCALHOST: 3000 /, хотя доступ локального хоста: 3000/Войти пошли хорошо, но после того, что вы ничего не могли сделать ..)

http://ironruby.codeplex.com/workitem/list/basic?size=2147483647

5

Я попытался получить Redmine на IronRuby с некоторым успехом несколько месяцев назад. Версия Redmine, которую я использовал, была 0.9.3, версия IronRuby была 1.0v4, SQL Server 2005, и она была размещена в IIS 6. На самом деле это была большая работа по ее запуску и запуску. Мне пришлось внести небольшие изменения в кучу файлов Redmine. Я также добавил некоторые файлы, которых нет в моей загрузке, например new_rails_defaults.rb. Кроме того, мне пришлось получить источник IronRuby от GitHub и немного изменить его, чтобы заставить IronRack работать.

Чтобы заставить IIS работать, мне пришлось перенаправить весь трафик на .Net для обработки в Redmine IIS WebApplication, которую я создал. Это было сделано путем добавления сопоставления расширения приложения в «C: \ Windows \ Microsoft.NET \ Framework \ v2.0.50727aspnet_isapi.dll"

Затем я перенаправил весь трафик на IronRack в свой файл Web.config.

<httpHandlers> 
<clear /> 
<add path="*" verb="*" type="IronRuby.Rack.HttpHandlerFactory, IronRuby.Rack"/></httpHandlers> 

Это остановило IIS от возможности обслуживать статические файлы. Чтобы исправить это, я создал StaticFileHttpHandler.

using System; 
using System.Collections.Generic; 
using System.IO; 
using System.Linq; 
using System.Text; 
using System.Web; 

namespace StaticFileHttpHandler 
{ 
    public class StaticFileHttpHandler : IHttpHandler 
    { 
     #region IHttpHandler Members 

     public bool IsReusable 
     { 
      get 
      { 
       return true; 
      } 
     } 

     public void ProcessRequest(HttpContext context) 
     { 
      string staticFileUrl = context.Request.Url.LocalPath.Replace(@"/", @"\"); 
      string staticFilePath = context.Server.MapPath(@"~\..\..\"); 
      string defaultStaticFilePathForRemapping = @"\Redmine\public"; 
      string defaultRootDirectoryForRemapping = @"\Redmine"; 
      bool remapImage = !string.IsNullOrWhiteSpace(context.Request.QueryString.ToString()); 

      if (staticFilePath.EndsWith(@"\")) 
      { 
       staticFilePath = staticFilePath.Substring(0, staticFilePath.Length - 1); 
      } 

      if (remapImage) 
      { 
       staticFilePath += (defaultStaticFilePathForRemapping + staticFileUrl.Replace(defaultRootDirectoryForRemapping, "")); 
      } 
      else 
      { 
       staticFilePath += staticFileUrl; 
      } 

      if (File.Exists(staticFilePath)) 
      { 
       context.Response.ContentType = GetMimeType(staticFilePath); 
       context.Response.TransmitFile(staticFilePath); 
      } 
      else 
      { 
       context.Response.ContentType = "text/plain"; 
       context.Response.Write("The File Does Not Exist!!! File: " + staticFilePath); 
      }    

      context.Response.Flush(); 
      context.ApplicationInstance.CompleteRequest(); 
     } 

     // Found Here: http://kseesharp.blogspot.com/2008/04/c-get-mimetype-from-file-name.html 
     private string GetMimeType(string fileName) 
     { 
      string mimeType = "application/unknown"; 
      string ext = System.IO.Path.GetExtension(fileName).ToLower(); 

      Microsoft.Win32.RegistryKey regKey = Microsoft.Win32.Registry.ClassesRoot.OpenSubKey(ext); 

      if (regKey != null && regKey.GetValue("Content Type") != null) 
      { 
       mimeType = regKey.GetValue("Content Type").ToString(); 
      } 

      return mimeType; 
     } 

     #endregion 
    } 
} 

Это также необходимо добавить в раздел httpHandlers. И для каждого статического типа файла, который вы хотите, чтобы он мог служить. Пример обслуживания PNG-файла показан ниже.

<httpHandlers> 
<clear /> 
<add path="*.png" verb="*" type="StaticFileHttpHandler.StaticFileHttpHandler, StaticFileHttpHandler"/> 
<add path="*" verb="*" type="IronRuby.Rack.HttpHandlerFactory, IronRuby.Rack"/></httpHandlers> 

Мне также необходимо сделать файл images_controller.rb, чтобы указать статические файлы.

# This is a place holder controller to allow for mapping static images 

class ImagesController < ApplicationController 
    def index 
    0 
    end 
end 

Следующие все * .yml-файлы нуждаются в двойном qoutes вокруг значений с знаком процента.

field_done_ratio: "% ???????" 

Кроме того, я должен был закомментировать все создания индекса и удаления в файлах настройки базы данных в папке DB \ Migrate.

В заключение можно получить, что Redmine работает в основном с IronRuby, IronRack, IIS 6 и SQL Server 2005, но не без каких-либо изменений.