0

アプリケーション プールとアプリケーションを作成する Visual Basic アプリケーションがあります。64 ビットの Windows 8 マシンで実行すると、プールとアプリケーションが IIS 8.0 ではなく IIS Express 8.0 で作成されます。\documents\IISExpress で applicationhost.config を開き、そこで変更が行われていることを確認しました。IIS Express ではなく IIS をターゲットにする方法についての洞察をいただければ幸いです。構成アプリケーションは通常、Web サーバーで実行されますが、開発マシンでも動作する必要があります。IIS バージョンを取得するコードは次のとおりです。

Dim rootId As DirectoryEntry = GetDirectoryEntry(String.Format("IIS://{0}/W3SVC/Info", DomainName))

            If rootId IsNot Nothing Then
                Try
                    If rootId.Properties.Contains("MajorIIsVersionNumber") = True Then
                        Dim iisVal As String = rootId.Properties("MajorIIsVersionNumber").Value.ToString

上記の DomainName に localhost とマシン名の両方を使用すると、IIS Express に接続されます。アプリケーション プールを作成する関数を次に示します。poolName 変数を設定するループは、IIS Express を使用しているかどうかを判断するのに役立つデバッグ用です。繰り返しますが、動作しますが、IIS Express にプールが作成されます。

Private Function GetOrCreateAppPool(ByRef mgr As ServerManager, ByVal domainPath As String, ByVal appPoolName As String, ByVal addAppPool As Boolean) As ApplicationPool
        ' First see if app pool exists
        Dim appPoolId As ApplicationPool = Nothing
        Dim poolId As ApplicationPool
        Dim poolName As String

        For Each poolId In mgr.ApplicationPools
            poolName = poolId.Name
        Next

        appPoolId = mgr.ApplicationPools(appPoolName)

        If appPoolId Is Nothing Then
            appPoolId = mgr.ApplicationPools.Add(appPoolName)

            If appPoolId IsNot Nothing Then
                With appPoolId
                    .AutoStart = True
                    .ManagedPipelineMode = ManagedPipelineMode.Integrated
                    .ManagedRuntimeVersion = "v4.0"
                    .ProcessModel.IdentityType = ProcessModelIdentityType.NetworkService
                    .ProcessModel.IdleTimeout = TimeSpan.FromMinutes(240)
                    .Recycling.PeriodicRestart.Time = TimeSpan.FromMinutes(0)
                    .Recycling.PeriodicRestart.Schedule.Add(TimeSpan.Parse("03:00:00"))
                End With

                mgr.CommitChanges()
            End If
        End If

        Return appPoolId
    End Function

任意の支援をいただければ幸いです。

4

1 に答える 1