Hola Gustavo
Si, podes realizar el Web Service con .Net y que este utilice los servicios de 
un componente desarrollado en VFP.
Saludos
José Paez

&& Ejemplo de la estructura de la clase que tendrás que compilar como DLL en 
VFP9

#Define  CR             Chr(13)#Define  CRCR    Chr(13)+Chr(13)#Define  CRLF    
Chr(13)+Chr(10)
Define Class Gateway As Session OlePublic
        Path                    = "C:\" Log                             = "C:\"
        
************************************************************************        
* Gateway :: Init       
************************************************************************        
Procedure Init          If Not This.OnLoad() Then                       Return 
.F.              Endif   Endproc
        
************************************************************************        
* Gateway :: Destroy    
************************************************************************        
Procedure Destroy               This.OnDestroy()        Endproc
        
************************************************************************        
* Gateway :: Error      
************************************************************************        
Procedure Error(lnError, lcMethod, lnLine)              Local;                  
Array laErrorArray[7]           Local;                  lnI     As Integer,;    
                lcErrMessage As String
                = Aerror( laErrorArray )
                lcErrMessage = ;                        "Error  :" + Transform( 
lnError )       + CR +;                 "Metodo :" + Transform( lcMethod )      
+ CR +;                 "Linea  :" + Transform( lnLine )        + CR +;         
        "Detalle:" + Message()
                lcErrMessage = + CRCR + lcErrMessage + CRCR
                For lnI = 1 To 7                        lcErrMessage = 
lcErrMessage + Transform(lnI) + ": " + Transform( laErrorArray( lnI ) ) + CR    
         Endfor
                If Inlist( _vfp.StartMode, 3, 5 ) Then                  
Comreturnerror("Gateway: " + Proper( lcMethod ), lcErrMessage )         Endif
        Endproc
        
************************************************************************        
* Gateway :: OnLoad     
************************************************************************        
Hidden Function OnLoad As Boolean               Local;                  
llReturn                As Boolean,;                    loErrHandler    As 
Exception
                llReturn  = .F.
                Close Tables All                Close Databases All
                Sys(2339,0) && Llamar a CoFreeUnusedLibraries al liberar un 
objeto COM
                Set Ansi On             Set Autoincerror On             Set 
Autosave Off                Set Blocksize To 64             Set Carry Off       
    Set Century On          Set Collate To "SPANISH"                Set Confirm 
Off         Set Currency To "$"             Set Database To         Set Date 
Dmy            Set Decimals To 2               Set Deleted On          Set 
Exact On            Set Exclusive Off               Set Fields Off          Set 
Fixed Off           Set Hours To 24         Set Lock Off            Set Mark To 
"/"         Set Multilocks On               Set Near Off            Set Null 
Off            Set Point To "."                Set Reprocess To Automatic       
       Set Safety Off          Set Seconds On          Set Sysformats Off       
       Set Talk Off            Set TableValidate To 0          Set Unique Off
                Clear Error             Try                     &&              
        && Aqui tu codigo de inicialización                     &&
                Catch To loException                    lcErrMessage = CRLF +;  
                        "********* Fecha/Hora: " + Transform( Datetime() ) + 
CRLF + ;                           "Error  : " + Transform( loException.ErrorNo 
)  + CRLF + ;                              "Metodo : " + Transform( 
loException.Procedure )        + CRLF + ;                              "Linea  
: " + Transform( loException.Lineno )   + CRLF + ;                              
"Detalle: " + Transform( loException.Details )  + CRLF + ;                      
        "Mensaje: " + Transform( loException.Message )
                        Strtofile( lcErrMessage, This.Path + "Gateway.err", 1)  
                This.ReturnError( loException )         Endtry
                Return llReturn Endfunc

        
************************************************************************        
* Gateway :: OnDestroy  
************************************************************************        
Hidden Procedure OnDestroy              Close Tables All                Close 
Databases All     Endproc

        
************************************************************************        
* Gateway :: ReturnError        
************************************************************************        
Hidden Procedure ReturnError( loException As Exception )                Local;  
                lcMensaje As String
                If Vartype( loException.UserValue ) = "C" And Not Empty( 
loException.UserValue ) Then                   lcMensaje = 
loException.UserValue               Else                    lcMensaje = 
loException.Message         Endif
                lcErrMessage = CRLF +;                  "********* Fecha/Hora: 
" + Transform( Datetime() ) + CRLF + ;                   "Error  : " + 
Transform( loException.ErrorNo )  + CRLF + ;                      "Metodo : " + 
Transform( loException.Procedure )        + CRLF + ;                      
"Linea  : " + Transform( loException.Lineno )   + CRLF + ;                      
"Detalle: " + Transform( loException.Details )  + CRLF + ;                      
"Mensaje: " + lcMensaje
                loError = Createobject("Exception")             loError.Message 
= lcErrMessage          loError.ErrorNo = loException.ErrorNo
                Strtofile( lcErrMessage, This.Path + "Gateway .err")    Endproc

        
************************************************************************        
* Gateway :: Trace      
************************************************************************        
Hidden Procedure Trace( tcMessage )                     tcMessage = Dtoc( 
Date() ) + " - " + Time() + Chr(9) + tcMessage + CRLF                 
Strtofile( tcMessage , This.Path + "Gateway.log", 1)    Endproc

        
************************************************************************        
* Gateway :: Procesar   
************************************************************************        
Function Procesar;                      (;                      ) As boolean
                This.Trace( "Procesar - Inicio" )
                Local llResult As Boolean               Local loGateway as 
Object               Local loException, lcErrorMsg, loWSHandler
                llResult = .F.
                Try                                     llResult = MiFuncion()
                Catch To loException                    This.Trace( 
"Elegibilidad - Error" )
                        lcErrorMsg = "Error: " + Transform( loException.ErrorNo 
) + " - " + loException.Message                 lcErrorMsg = lcErrorMsg + CR + 
loGateway.Detail 
                        This.Trace( lcErrorMsg )
                        loException.UserValue = lcErrorMsg                      
This.ReturnError( loException )                                 Finally         
        loGateway = Null                Endtry
                This.Trace( "Procesar - Fin" )
                Return llResult Endfunc
Enddefine
&& Ejemplo de la clase en VB.Net que será publicada como WebService
Imports System.WebImports System.Web.ServicesImports 
System.Web.Services.Protocols

<WebService(Namespace:="http://tempuri.org/";)> 
_<WebServiceBinding(ConformsTo:=WsiProfiles.BasicProfile1_1)> 
_<Global.Microsoft.VisualBasic.CompilerServices.DesignerGenerated()> _Public 
Class Gateway    Inherits System.Web.Services.WebService
    <WebMethod()> _    Public Function Procesar() As Boolean
        Dim resultado As Boolean = False        Dim gateway As MiDLL.Gateway 
        Try                gateway = New MiDLL.Gateway          resultado = 
gateway.Procesar()        Catch ex As Exception             Throw ex        End 
Try
        Return resultado    End Function
End Class

> Date: Wed, 19 Aug 2015 16:29:35 -0300
> From: [email protected]
> To: [email protected]
> Subject: [GUFA] Web Service con SOAP Toolkit con Internet Information 
> Services 10
> 
> Hola amigos!!
> 
> Viendo que nadie contestó, y que busqué por todas partes, supongo que no 
> se puede.
> 
> Asique se me ocurre una alternativa con .NET, que nunca lo usé y no 
> tengo idea, pero si encontré muchísimo material para armar Web Services 
> con .NET, ya sea del lado del cliente o del servidor.
> 
> Entonces mi pregunta es: ¿Puedo crear un Web Service con .NET que llame 
> las funciones de las DLL generadas con VFP? (Que actualmente actúan como 
> WS en un server Win 2K, funcionan bien, están probadas, todo!!)
> 
> Porque aparentemente los Web Serivces creados con .NET son muy fáciles 
> de instalar y publicar con IIS 10...
> 
> Agradezco cualquier tipo de dato que me ayude a encontrar el camino a la 
> luz...
> 
> Saludos y gracias!!
> 
> 
> 
> El 14/08/2015 17:52, Gustavo Señoriño escribió:
> > Hola a Todos!!
> >
> > Se puede instalar un Web Service desarrollado en VFP con SOAP Toolkit 
> > 3.0 en un server con IIS 10?
> >
> > Digo, si se cambia el server Win 2000 por uno mas nuevo, va a 
> > funcionar bien?
> >
> > Gracias y buen finde
> > Gustavo
> >
> >
> 
> 
                                          

Responder a