Community
Showing results for 
Search instead for 
Do you mean 
Reply

.NET Compiler crashes when referencing the new licensing system

Copper Super Contributor
Posts: 46
Country: Germany

.NET Compiler crashes when referencing the new licensing system

[ Edited ]

Hello,

 

Short description of the problem

The new licensing system of ACT! prevents further development of custom functionality with VB.Net

for APFW due to an unresolvable app crash of the VBC compiler.

 

Details

I have a problem with the new version of the act.shared.lic.provider.dll for the new license system Soraco.

It concerns the development of own tabs in the Act! Premium for Web and displaying an aspx page with VB .NET code. The problem is when the w3wp (IIS Worker Process) tries to compile the aspx file with a language attribute set to “vb” in the page directive:

 

<%@ Page Language="VB" AutoEventWireup="false" CodeBehind="MyWebTabVB.aspx.vb" Inherits="MyWebTabVB.MyWebTab" %>

The VBC (Visual Basic Compiler, "C:\Windows\Microsoft.NET\Framework\v4.0.30319\vbc.exe") of the .NET Framework 4 crashes. You’ll get an APPCRASH event in the Windows event log:

Errorbucket 1416204227381478413, Typ 1

Eventname: APPCRASH

Answer: Nicht verfügbar

CAB-Datei-ID: 0

 

Problemsignatur:

P1: vbc.exe

P2: 14.7.3056.0

P3: 5a8e60cb

P4: vbc.exe

P5: 14.7.3056.0

P6: 5a8e60cb

P7: c0000005

P8: 0007c177

P9:

P10:

 

Angefügte Dateien:

\\?\C:\ProgramData\Microsoft\Windows\WER\Temp\WERA379.tmp.WERInternalMetadata.xml

 

Diese Dateien befinden sich möglicherweise hier:

C:\ProgramData\Microsoft\Windows\WER\ReportArchive\Critical_vbc.exe_a08f56aaa155bde7efc2d4d7ab277e81d14c110_00000000_4785aa01

 

Analysesymbol:

Es wird erneut nach einer Lösung gesucht: 0

Berichts-ID: 50294c85-464b-4fa5-a3c8-b181a977c766

Berichtstatus: 268435456

Bucket mit Hash: 291021ae69c4fe6103a75e3dce7ac40d

CAB-Datei-Guid: 0

 

After this event you’ll get error events from AFW (APFW):

 

SOURCE: System.Web

MESSAGE: Eine externe Komponente hat eine Ausnahme ausgelöst.

QUERYSTRING:

TARGETSITE: System.CodeDom.Compiler.CompilerResults Compile()

STACKTRACE:    bei System.Web.Compilation.AssemblyBuilder.Compile()

   bei System.Web.Compilation.BuildProvidersCompiler.PerformBuild()

   bei System.Web.Compilation.BuildManager.CompileWebFile(VirtualPath virtualPath)

   bei System.Web.Compilation.BuildManager.GetVPathBuildResultInternal(VirtualPath virtualPath, Boolean noBuild, Boolean allowCrossApp, Boolean allowBuildInPrecompile, Boolean throwIfNotFound, Boolean ensureIsUpToDate)

   bei System.Web.Compilation.BuildManager.GetVPathBuildResultWithNoAssert(HttpContext context, VirtualPath virtualPath, Boolean noBuild, Boolean allowCrossApp, Boolean allowBuildInPrecompile, Boolean throwIfNotFound, Boolean ensureIsUpToDate)

   bei System.Web.Compilation.BuildManager.GetVirtualPathObjectFactory(VirtualPath virtualPath, HttpContext context, Boolean allowCrossApp, Boolean throwIfNotFound)

   bei System.Web.Compilation.BuildManager.CreateInstanceFromVirtualPath(VirtualPath virtualPath, Type requiredBaseType, HttpContext context, Boolean allowCrossApp)

   bei System.Web.UI.PageHandlerFactory.GetHandlerHelper(HttpContext context, String requestType, VirtualPath virtualPath, String physicalPath)

   bei System.Web.UI.PageHandlerFactory.GetHandler(HttpContext context, String requestType, String virtualPath, String path)

   bei System.Web.HttpApplication.MaterializeHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute()

   bei System.Web.HttpApplication.ExecuteStepImpl(IExecutionStep step)

   bei System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously)

REFERER: http://localhost/APFW/contacts/contactDetail.aspx

 

I created a little test environment “VBCTest” (see enclosed ZIP file VBCTest.zip):

 

VBCTest_2019-03-07_132949.png

 

  • Folder “new” contains the act.shared.licprovider.dll from the APFW 21 Update 6 (Soraco).
  • Folder “old” contains the act.shared.licprovider.dll from the APFW 21 Setup medium (Protexis).
  • File MyApp.vb is  a VB.NET code file for a little “hello” world test application.
  • File MyApp.rsp contains the compiler option file which will be used to compile the code file.
  • File Compile.bat is the batch file to start the compilation process.

(All these files and folders should be placed in a subfolder VBCTest in the root of your C: drive)

 

With the MyApp.rsp file you can define which act.shared.licprovider.dll should be added as reference to the compiler (/R: option). You can edit it the notepad and you can use the # as comment character to comment-out a line. So you can activate the different versions of the act.shared.licprovider.dll.

 

Run the compiler.bat file to see if the compiler is able to create the MyApp.exe file.

You’ll see that in the case of using the “old” act.shared.licprovider.dll the compiler can create the MyApp.exe. If you use the “new” act.shared.licprovider.dll the compiler crashes, this can only be seen in the Windows event log and you will not get a MyApp.exe.

 

I tried to find a way that the w3wp process will not add the reference to the “act.shared.licprovider.dll“ for example with the CompilerOptions attribute in the page directive. But I’ve not found a solution.

 

So please do something with your act.shared.licprovider.dll. I think for a .NET solution it should be compatible to the VBC .NET compiler. May be you should talk to the producer of your “.NET Obfuscator” or use another grade of obfuscation.

 

The bad thing is that the Soraco-Updates for the Act! versions 18.2, 20.0 and 20.1 (I do not mention 19.2 because there is no German 19.2 version of Act!) also replace the old versions of the act.shared.licprovider.dll. They all are incompatible as reference for the VBC compiler.

 

So we had to stop development for APFW.

 

Best regards

Robert

Melville-Schellmann
Consulting and Development for CRM-Software