1

我正在尝试启动一个 Sitefinity 4.2 项目。作为项目的一部分,我需要在 global.asax 文件中注册一些控件,如下所示:

    protected void Application_Start(object sender, EventArgs e) {

        //log call
        logStartUpCall(string.Concat("Application started at: ", DateTime.Now));

        Telerik.Sitefinity.Abstractions.Bootstrapper.Initialized += new EventHandler<Telerik.Sitefinity.Data.ExecutedEventArgs>(Bootstrapper_Initialized);

        //log call
        logStartUpCall(string.Concat("Call made to bootstrapper: ", DateTime.Now));
    }

    protected void Application_OnStart(object sender, EventArgs e) {

        //log call
        logStartUpCall(string.Concat("Application started at: ", DateTime.Now));

        Telerik.Sitefinity.Abstractions.Bootstrapper.Initialized += new EventHandler<Telerik.Sitefinity.Data.ExecutedEventArgs>(Bootstrapper_Initialized);

        //log call
        logStartUpCall(string.Concat("Call made to bootstrapper: ", DateTime.Now));
    }

    protected void Bootstrapper_Initialized(object sender, Telerik.Sitefinity.Data.ExecutedEventArgs args) {

        //log call
        logStartUpCall(string.Concat("Bootstrapper_Initialized:", " ", DateTime.Now));

        //register dialogs for custom module fields
        Telerik.Sitefinity.Web.UI.Dialogs.RegisterDialog<SitefinityModuleFields.Dialogs.SimpleImageSelectorDialog>();
        logStartUpCall(string.Concat("Simple Image Selector dialog registered at:", " ", DateTime.Now));
        Telerik.Sitefinity.Web.UI.Dialogs.RegisterDialog<SitefinityModuleFields.Dialogs.SimpleVideoSelectorDialog>();
        logStartUpCall(string.Concat("Simple Video Selector dialog registered at:", " ", DateTime.Now));
        Telerik.Sitefinity.Web.UI.Dialogs.RegisterDialog<ioscms.AppCode.ModuleFields.SimpleDocumentSelectorDialog>();
        logStartUpCall(string.Concat("Simple Document Selector dialog registered at:", " ", DateTime.Now));

        //log call
        logStartUpCall(string.Concat("Dialogs registered at: ", DateTime.Now));

    }

    protected void logStartUpCall(string message) {

        TextWriter tw = new StreamWriter(System.Web.Hosting.HostingEnvironment.MapPath("/App_Data/SiteFinity/Logs/Startup.log"), true);

        // write a line of text to the file
        tw.WriteLine(message);

        // close the stream
        tw.Close();

    }

这在正常调试模式下完美运行。我正在使用 Web 部署项目来部署项目。这当然会预编译网站。我正在使用的设置是:

SingleAssembly UpdateAble: true DebugSymbols: false

sitefinity 的另一件事是无法预编译应用程序,因此必须删除 PrecompiledApp.config 文件。

我遇到的问题是Application_Start(我也尝试过Application_OnStart)从未执行过,所以当然对话框从未注册过。

我还尝试了“将每个单独的文件夹输出合并到自己的程序集”选项,但无济于事。

有没有人有任何想法?

在此先感谢希格斯

4

0 回答 0