es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

“Owin Start Url al final del dominio existente”

Estoy intentando comenzar mi servidor Owin Autohospedado al final de mi dominio actual.

Por ejemplo, tengo un sitio MVC hospedado en IIS que se ejecuta en la dirección www.abc.com.

Ahora estoy intentando cargar un servidor Owin autohospedado al final de esa dirección, como esta: www.abc.com/sampleOwinServer.

El proyecto Owin es una biblioteca de clases que se referencía en otro proyecto MVC y lo instancio mediante reflexión (iniciando el servidor Owin dentro de él).

Tags:  ,

Answer

  1. Avatar for davy.ai

    Para lograr el resultado deseado, puede seguir estos pasos:

    1. Agregue una nueva ruta a su aplicación MVC que apunte al endpoint sampleOwinServer. Puede hacer esto agregando la siguiente línea de código a su archivo RouteConfig.cs:
    routes.MapRoute(
        name: "SampleOwinServer",
        url: "sampleOwinServer/{*path}",
        defaults: new { controller = "SampleOwinServer", action = "Index" }
    );
    

    Esta ruta coincidirá con cualquier URL que comience con /sampleOwinServer y la enviará a un controlador llamado SampleOwinServer.

    1. Cree un nuevo controlador MVC llamado SampleOwinServerController que se encargará de iniciar y detener el servidor autoalojado de Owin. En la acción Index de este controlador, use reflexión para encontrar y comenzar el servidor de Owin:
    public ActionResult Index()
    {
        var owinAssembly = Assembly.Load("YourOwinClassLibraryName");
        var owinStartupType = owinAssembly.GetTypes().FirstOrDefault(t => typeof(OwinStartup).IsAssignableFrom(t));
        var owinStartupInstance = (OwinStartup)Activator.CreateInstance(owinStartupType);
    
        using (WebApp.Start("http://localhost:12345", owinStartupInstance.Configuration))
        {
            return View();
        }
    }
    

    En este código, reemplace YourOwinClassLibraryName con el nombre de su biblioteca de clases de Owin y actualice la URL para que coincida con la URL en la que desea que el servidor escuche. También puede ajustar otras opciones, como SSL y el puerto, según sea necesario.

    1. Agregue una vista para la acción Index del controlador SampleOwinServerController y modifíquela para incluir un enlace a su servidor de Owin:
    @{
        ViewBag.Title = "Sample Owin Server";
    }
    
    <a href="http://localhost:12345">Haga clic aquí para acceder al servidor Owin</a>
    

    En este código, reemplace la URL del enlace con la misma URL que utilizó en el paso 2.

    Con estos cambios en su lugar, debería poder iniciar su servidor autoalojado de Owin en www.abc.com/sampleOwinServer navegando a esa URL en su navegador.

Comments are closed.