응용 프로그램 풀과 응용 프로그램을 만드는 Visual Basic 응용 프로그램이 있습니다. 64 비트 Windows 8 시스템에서 실행하면 IIS 8.0이 아닌 IIS Express 8.0에서 풀과 응용 프로그램이 만들어집니다. \ documents \ IISExpress에서 applicationhost.config를 열고 변경 사항이 있는지 확인합니다. IIS Express 대신 IIS를 대상으로하는 방법에 대한 통찰력에 감사드립니다. 구성 응용 프로그램은 일반적으로 웹 서버에서 실행되지만 개발 컴퓨터에서도 작동해야합니다. IIS 버전을 얻는 코드는 다음과 같습니다.IIS가 아닌 IIS Express를 사용하여 프로그래밍 방식으로 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와 machine name을 모두 사용하면 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
도움을 주시면 감사하겠습니다.
NuGet 패키지는 피해야합니다. https://blog.lextudio.com/2015/05/whats-microsoft-web-administration-and-the-horrible-facts-you-should-know/ 특히 IIS 8의 경우 + 사용자. –