Visualizzazione dei risultati da 1 a 6 su 6
  1. #1

    [C#] applicazione web e dll

    Ciao a tutti,
    vi pongo il mio problema, e potrebbe essere che non si può fare ma ci provo.
    Io ho un apparecchio con il suo software per la gestione ma fortunatamente ci sono anche le API per poter creare adhoc un proprio software di gestione completo di libreria ed esempio scritto in c# e in c++. Prendendo spunto dall'esempio in c# ne volevo fare una versione web in modo da potermi collegare al pc tramite iis e controllare lo stato. Avendo poche conoscenze di informatica, mi sono impantanato quasi subito e non capisco se effettivamente è carenza informatica o solo non si può fare.
    Mi potreste aiutare ???
    File PP100API.cs


    File Default.aspx
    codice:
    <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="EpsonPP100._Default" %>
    
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    
    <html xmlns="http://www.w3.org/1999/xhtml" >
    <head runat="server">
        <title>Untitled Page</title>
    </head>
    <body>
        <form id="form1" runat="server">
        <div>
            <asp:TextBox ID="textBoxResult" runat="server"></asp:TextBox><br />
        </div>
        </form>
    </body>
    </html>
    File Default.aspx.cs
    codice:
    using System;
    using System.Data;
    using System.Text;
    using System.Runtime.InteropServices;
    using EPSON.PP100.API;
    
    namespace EpsonPP100
    {
        public partial class _Default : System.Web.UI.Page
        {
            DataTable serverTable = new DataTable();
    
            protected void Page_Load(object sender, EventArgs e)
            {
                int iRet = (int)Define.ReturnValue.PP100API_SUCCESS;
                uint uiServerHandle = 0;
    
                iRet = Function.PP100_ConnectServer(null,null,ref uiServerHandle);
    
                if ((int)Define.ReturnValue.PP100API_SUCCESS == iRet)
                {
                    textBoxResult.Text += "PP100_ConnectServer( , ) returns PP100API_SUCCESS<br>";             
                }
                else
                {
                    textBoxResult.Text += "PP100_ConnectServer( , ) returns <br>";
                }
                textBoxResult.Text += "<br>";
    
            }
        }
    }

    In pratica va in errore nella riga
    codice:
    iRet = Function.PP100_ConnectServer(null,null,ref uiServerHandle);
    Ho allegato il file PP100API.cs


    Grazie
    File allegati File allegati

  2. #2
    Utente di HTML.it
    Registrato dal
    Jul 2015
    Messaggi
    57
    l'errore genera un eccezione oppure iRet da un risultato non valido?
    in entrambi i casi quale è la descrizione dell'errore/eccezione riportato?

  3. #3
    avviando l'applicazione da Visual Studio, compariva la pagina web "non è possibile trovare la pagina", così ho iniziato a commentare le righe per capire se c'era un problema di codice e alla fine ho trovato che la riga "iRet = ...." manda in errore la pagina. Quindi commentando quella riga la pagina viene caricata correttamente.
    Lunedì a lavoro provo a vedere che errore da VS.

    intanto Grazie

  4. #4
    avviando l'applicazione da Visual Studio, compariva la pagina web "non è possibile trovare la pagina", così ho iniziato a commentare le righe per capire se c'era un problema di codice e alla fine ho trovato che la riga "iRet = ...." manda in errore la pagina. Quindi commentando quella riga la pagina viene caricata correttamente
    Lunedì a lavoro prova a vedere che errore da VS

    intanto grazie

  5. #5
    Oggi ho riprovato ad eseguire l'applicazione mettendo un punto di interruzione proprio nella riga "iRet = Function.PP100_ConnectServer(null,null,ref uiServerHandle);" e non ci sono errori o warning. In VS compare:
    > EpsonPP100.DLL!PP100API._Default.Page_Load(object sender = {ASP.default_aspx}, System.EventArgs e = {System.EventArgs}) Line 18 C#
    Continuo l'esecuzione dell'applicativo e si avvia iexplorer con "Non riesco a visualizzare questa pagina".
    Ad una prima impressione sembra che l'applicativo non riesca a richiamare la dll segnata nel file pp100api.cs

  6. #6
    Al primo problema ho trovato la soluzione, in pratica era dovuto alla compilazione del progetto, ho dovuto impostare come processore di destinazione x86. Però adesso iexplorer mi da una sfilza di errori dello stack che non so proprio decifrare...

    codice:
    [BadImageFormatException: Impossibile caricare il file o l'assembly 'EpsonPP100' o una delle relative dipendenze. Tentativo di caricare un programma con un formato non corretto.]
       System.Reflection.Assembly._nLoad(AssemblyName fileName, String codeBase, Evidence assemblySecurity, Assembly locationHint, StackCrawlMark& stackMark, Boolean throwOnFileNotFound, Boolean forIntrospection) +0
       System.Reflection.Assembly.InternalLoad(AssemblyName assemblyRef, Evidence assemblySecurity, StackCrawlMark& stackMark, Boolean forIntrospection) +416
       System.Reflection.Assembly.InternalLoad(String assemblyString, Evidence assemblySecurity, StackCrawlMark& stackMark, Boolean forIntrospection) +166
       System.Reflection.Assembly.Load(String assemblyString) +35
       System.Web.Configuration.CompilationSection.LoadAssemblyHelper(String assemblyName, Boolean starDirective) +190
    
    [ConfigurationErrorsException: Impossibile caricare il file o l'assembly 'EpsonPP100' o una delle relative dipendenze. Tentativo di caricare un programma con un formato non corretto.]
       System.Web.Configuration.CompilationSection.LoadAssemblyHelper(String assemblyName, Boolean starDirective) +11327096
       System.Web.Configuration.CompilationSection.LoadAllAssembliesFromAppDomainBinDirectory() +388
       System.Web.Configuration.CompilationSection.LoadAssembly(AssemblyInfo ai) +232
       System.Web.Configuration.AssemblyInfo.get_AssemblyInternal() +48
       System.Web.Compilation.BuildManager.GetReferencedAssemblies(CompilationSection compConfig) +210
       System.Web.Compilation.WebDirectoryBatchCompiler..ctor(VirtualDirectory vdir) +191
       System.Web.Compilation.BuildManager.BatchCompileWebDirectoryInternal(VirtualDirectory vdir, Boolean ignoreErrors) +54
       System.Web.Compilation.BuildManager.CompileWebFile(VirtualPath virtualPath) +295
       System.Web.Compilation.BuildManager.GetVPathBuildResultInternal(VirtualPath virtualPath, Boolean noBuild, Boolean allowCrossApp, Boolean allowBuildInPrecompile) +476
       System.Web.Compilation.BuildManager.GetVPathBuildResultWithNoAssert(HttpContext context, VirtualPath virtualPath, Boolean noBuild, Boolean allowCrossApp, Boolean allowBuildInPrecompile) +116
       System.Web.Compilation.BuildManager.GetVirtualPathObjectFactory(VirtualPath virtualPath, HttpContext context, Boolean allowCrossApp, Boolean noAssert) +175
       System.Web.Compilation.BuildManager.CreateInstanceFromVirtualPath(VirtualPath virtualPath, Type requiredBaseType, HttpContext context, Boolean allowCrossApp, Boolean noAssert) +52
       System.Web.UI.PageHandlerFactory.GetHandlerHelper(HttpContext context, String requestType, VirtualPath virtualPath, String physicalPath) +50
       System.Web.MaterializeHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() +425
       System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) +263

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.