# Microsoft.Owin.Host.SystemWeb

**Kind:** Service

**Source:** `Pams/Web/Pams.Web/Pams.Web.csproj` (line 1)

**Part of:** [Pams](subsystem-pams)

NuGet package dependency

`Microsoft.Owin.Host.SystemWeb` connects an OWIN application pipeline to ASP.NET `System.Web` hosting under IIS. The package lets middleware registered during application startup handle requests that enter through the ASP.NET web application.

## Diagram

```mermaid
sequenceDiagram
    participant Client
    participant IIS
    participant SystemWeb as ASP.NET System.Web
    participant OwinHost as Microsoft.Owin.Host.SystemWeb
    participant OwinApp as OWIN Application

    Client->>IIS: HTTP request
    IIS->>SystemWeb: Forward request
    SystemWeb->>OwinHost: Invoke OWIN host
    OwinHost->>OwinApp: Execute middleware pipeline
    OwinApp-->>OwinHost: HTTP response
    OwinHost-->>SystemWeb: Complete request
    SystemWeb-->>IIS: Return response
    IIS-->>Client: HTTP response
```

## Usage

```ts
async function loadPamsData() {
  const response = await fetch("/api/pams");

  if (!response.ok) {
    throw new Error("The OWIN-hosted application returned an error.");
  }

  return response.json();
}

loadPamsData().then((data) => {
  console.log(data);
});
```

## AI Coding Instructions

- Keep `Microsoft.Owin.Host.SystemWeb` referenced by the web project that runs under ASP.NET `System.Web` and IIS.
- Register OWIN middleware from the application startup path so the System.Web host can invoke the pipeline.
- Do not assume this package hosts applications outside IIS or ASP.NET `System.Web`.
- Check middleware ordering when adding authentication, routing, logging, or error handling.

## Used by

3 references from 3 files. Each is a place in this repository where the symbol is actually used — go read one rather than trusting an example.

### Injected or called by (3)

- `Pams.API` — `Pams/API/Pams.API/Pams.API.csproj`:1
- `Pams.Business` — `Pams/Logic/Pams.Business/Pams.Business.csproj`:1
- `Pams.Web` — `Pams/Web/Pams.Web/Pams.Web.csproj`:1
