Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/305.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在Azure web服务器上运行时编译时,Libsass net引发nullreference异常_C#_Asp.net_.net_Azure_Libsass - Fatal编程技术网

C# 在Azure web服务器上运行时编译时,Libsass net引发nullreference异常

C# 在Azure web服务器上运行时编译时,Libsass net引发nullreference异常,c#,asp.net,.net,azure,libsass,C#,Asp.net,.net,Azure,Libsass,在我正在使用的web应用程序中,我们使用Libsass net在运行时编译一些.scs,并在过程中替换一些颜色变量 奇怪的是,在本地,一切似乎都正常工作(即使有时会发生错误),而在azure web服务器上发布时,编译只正常工作一到两倍,然后sass编译器.Compile()开始抛出nullreferenceexceptions 错误跟踪如下所示: System.NullReferenceException: at LibSass.Compiler.SassExterns64.sass_com

在我正在使用的web应用程序中,我们使用Libsass net在运行时编译一些.scs,并在过程中替换一些颜色变量

奇怪的是,在本地,一切似乎都正常工作(即使有时会发生错误),而在azure web服务器上发布时,编译只正常工作一到两倍,然后sass编译器.Compile()开始抛出nullreferenceexceptions

错误跟踪如下所示:

System.NullReferenceException: at 
LibSass.Compiler.SassExterns64.sass_compile_file_context (LibSass.NET, 
Version=4.0.0.0, Culture=neutral, PublicKeyToken=null) at 
LibSass.Compiler.Context.SassSafeFileContextHandle.CompileInternalContext 
(LibSass.NET, Version=4.0.0.0, Culture=neutral, PublicKeyToken=null) at 
LibSass.Compiler.Context.SassSafeContextHandle.CompileContext (LibSass.NET, 
Version=4.0.0.0, Culture=neutral, PublicKeyToken=null)
private static CustomImportDelegate _customImportDelegate;

private SassImport[] SassImportDelegate(string currentImport, string parentImport, ISassOptions sassOptions)
    {
            var sassImport = new List<SassImport>();
            var variablesImport = new SassImport();

            if (currentImport.EndsWith("_variables_00_backend"))
            {
                variablesImport.Data = _colorString;
            }
            else
            {
                variablesImport.Path = currentImport;
            }
            sassImport.Add(variablesImport);
            return sassImport.ToArray();

    }

private string GenerateCss(string path)
    {
            _customImportDelegate = SassImportDelegate;
            Telemetrytrace($"path is {path}");
            var sassOptions = new SassOptions
            {
                InputPath = HttpContext.Current.Server.MapPath(path),
                Importers = new[]{ _customImportDelegate },
                IncludeSourceComments = false,
                OutputStyle = SassOutputStyle.Compressed,              
            };

            var sassCompiler = new SassCompiler(sassOptions);
            var sassResult = sassCompiler.Compile();
            return sassResult.Output;   
    }
而我使用的代码和替换是以下顺序:

System.NullReferenceException: at 
LibSass.Compiler.SassExterns64.sass_compile_file_context (LibSass.NET, 
Version=4.0.0.0, Culture=neutral, PublicKeyToken=null) at 
LibSass.Compiler.Context.SassSafeFileContextHandle.CompileInternalContext 
(LibSass.NET, Version=4.0.0.0, Culture=neutral, PublicKeyToken=null) at 
LibSass.Compiler.Context.SassSafeContextHandle.CompileContext (LibSass.NET, 
Version=4.0.0.0, Culture=neutral, PublicKeyToken=null)
private static CustomImportDelegate _customImportDelegate;

private SassImport[] SassImportDelegate(string currentImport, string parentImport, ISassOptions sassOptions)
    {
            var sassImport = new List<SassImport>();
            var variablesImport = new SassImport();

            if (currentImport.EndsWith("_variables_00_backend"))
            {
                variablesImport.Data = _colorString;
            }
            else
            {
                variablesImport.Path = currentImport;
            }
            sassImport.Add(variablesImport);
            return sassImport.ToArray();

    }

private string GenerateCss(string path)
    {
            _customImportDelegate = SassImportDelegate;
            Telemetrytrace($"path is {path}");
            var sassOptions = new SassOptions
            {
                InputPath = HttpContext.Current.Server.MapPath(path),
                Importers = new[]{ _customImportDelegate },
                IncludeSourceComments = false,
                OutputStyle = SassOutputStyle.Compressed,              
            };

            var sassCompiler = new SassCompiler(sassOptions);
            var sassResult = sassCompiler.Compile();
            return sassResult.Output;   
    }
私有静态CustomImportDelegate\u CustomImportDelegate;
私有SassImport[]SassImportDelegate(字符串currentImport、字符串parentImport、ISassOptions sassOptions)
{
var sassImport=新列表();
var variablesImport=new SassImport();
if(currentImport.EndsWith(“\u变量\u 00\u后端”))
{
variablesImport.Data=\u colorString;
}
其他的
{
variablesImport.Path=currentImport;
}
添加(variablesImport);
返回sassImport.ToArray();
}
专用字符串生成器(字符串路径)
{
_customImportDelegate=SassImportDelegate;
遥测跟踪($“路径为{path}”);
var sassOptions=新sassOptions
{
InputPath=HttpContext.Current.Server.MapPath(路径),
进口商=新[]{u customImportDelegate},
IncludeSourceComments=false,
OutputStyle=sassoutpStyle.Compressed,
};
var sassCompiler=新的sassCompiler(sassOptions);
var sassResult=sassCompiler.Compile();
返回sassResult.Output;
}

有没有人有同样的问题?有什么解决方案吗?

根据您的描述,我已经在我的电脑上创建了一个测试演示,效果很好。我已多次运行我的应用程序。每次都很有效。你能告诉我Libsass net的版本是什么吗?如果可能的话,发布sass文件内容让我再次测试。我使用libsassnet v 3.3.7和libsassnet.web 2.3.0。你在部署的azure web服务器上运行应用程序了吗?因为如果我在本地web应用程序中运行它,一切都会很好,在我在线发布代码之后,我开始得到一堆空引用异常。不幸的是,我无法转发SCS,因为我说的是外部库和自编代码之间的数千个文件。是的,我已经将应用程序发布到azure web app。您好,因此,我尝试按照库所有者的建议修改代码,去掉静态变量:但我的问题仍然存在。你认为这可能与azure web应用程序/服务器的设置有关吗?我真的很困惑,因为在部署之后,一切似乎都很好,但在重新编译了几次之后,我开始从重新编译过程中获得NullReference异常。根据您的描述,我已经在我的计算机上创建了一个测试演示,它工作得很好。我已多次运行我的应用程序。每次都很有效。你能告诉我Libsass net的版本是什么吗?如果可能的话,发布sass文件内容让我再次测试。我使用libsassnet v 3.3.7和libsassnet.web 2.3.0。你在部署的azure web服务器上运行应用程序了吗?因为如果我在本地web应用程序中运行它,一切都会很好,在我在线发布代码之后,我开始得到一堆空引用异常。不幸的是,我无法转发SCS,因为我说的是外部库和自编代码之间的数千个文件。是的,我已经将应用程序发布到azure web app。您好,因此,我尝试按照库所有者的建议修改代码,去掉静态变量:但我的问题仍然存在。你认为这可能与azure web应用程序/服务器的设置有关吗?我真的很困惑,因为在部署之后,一切似乎都很好,但在重新编译了一些时候之后,我开始从重新编译过程中得到NullReference异常。