2010-05-06 17 views

risposta

5

Penso che la risposta è NO allo stato attuale ... facendo un po 'di google ricerca ho trovato varie gente che chiede un paio di tentativi e alcuni problemi di sensibilizzazione ...

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

Attualmente, Redmine è supportato solo su Ruby 1.8.6 e 1.8.7 e su Ruby Enterprise Edition. Attualmente sono in corso sforzi per far funzionare Redmine su jRuby e Rubinius. Poiché non ci sono molti sviluppatori core che eseguono Windows, non darei per scontato che qualcuno lavori attivamente sulla compatibilità di IronRuby. Se siete disposti ad aiutare e codificare le patch necessarie, siete i benvenuti a parlare su http://redmine.org.

Redmine, file YAML non possono avere% nel loro ..

Nei miei inutili sforzi per ottenere redmine in esecuzione su IronRuby una delle cose che ho scoperto che le linee erano come queste: "field_done_ratio:% Fatto" nelle versioni locali i file yaml hanno generato eccezioni. se ho rimosso il "%" ha funzionato (o almeno ho fatto un passo avanti).

(rinunciato dopo queste 16 ore, il mio ultimo ostacolo fosse reindirizzamento infinito durante l'accesso localhost: 3000 /, anche se localhost accesso: 3000/login è andato bene, ma dopo che non si poteva fare nulla ..)

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

5

Ho tentato di far funzionare Redmine su IronRuby con qualche successo qualche mese fa. La versione di Redmine I utilizzata era la 0.9.3, la versione di IronRuby era 1.0v4, SQL Server 2005 ed era ospitata da IIS 6. In realtà era un sacco di lavoro per farlo funzionare. Ho dovuto apportare piccole modifiche a un mucchio di file Redmine. Ho anche aggiunto alcuni file che non erano presenti nel mio download come new_rails_defaults.rb. Inoltre, ho dovuto ottenere il sorgente IronRuby da GitHub e modificarlo leggermente per far funzionare IronRack.

Per far funzionare IIS, ho dovuto reindirizzare tutto il traffico verso .Net per l'elaborazione nella WebApplicazione IIS di Redmine che ho creato. Ciò è stato fatto aggiungendo un'estensione dell'applicazione mappando a "C: \ Windows \ Microsoft.NET \ Framework \ v2.0.50727aspnet_isapi.dll"

Quindi ho reindirizzato tutto il traffico a IronRack nel mio file Web.config.

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

Questo ha impedito a IIS di essere in grado di servire file statici. Per risolvere questo problema ho creato 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 
    } 
} 

Questo deve essere aggiunto anche alla sezione httpHandlers. E per ogni tipo di file statico che vuoi che sia in grado di servire. Un esempio di servizio di un file PNG è mostrato di seguito.

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

Avevo anche bisogno di creare un file images_controller.rb per puntare i file statici su.

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

class ImagesController < ApplicationController 
    def index 
    0 
    end 
end 

Avanti tutti i file * .yml bisogno doppie qoutes intorno valori con il segno di percentuale.

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

Inoltre, ho dovuto commentare tutta la creazione dell'indice e l'eliminazione nei file di installazione di database nella cartella db \ migrazione.

In conclusione, è possibile far funzionare Redmine principalmente con IronRuby, IronRack, IIS 6 e SQL Server 2005 ma non senza alcune modifiche.

Problemi correlati