제에 대한 쿼리를 IIS 에 동의하지 않 IIS 관리자에 Vista
-
05-07-2019 - |
문제
사용자의 컴퓨터에서...
가하는 스크립트를 사용하여 책을 설정하는 스크립트맵 IIS 웹 사이트입니다.그것의 자바스크립트,내에서 실행 cscript.exe 고 코드는 다음과 같이 나타납니다.
var web = GetObject("IIS://localhost/W3SVC/1");
var maps = web.ScriptMaps.toArray();
map[maps.length] = ".aaa,c:\\path\\to\\isapi\\extension.dll,1,GET,POST";
web.ScriptMaps = maps.asDictionary();
web.SetInfo();
면 IIS 관리자에서 스크립트를 실행 한 후,내가 볼 수 있는 새로운 목록에서 핸들러를 매핑됩니다.그것은 이상한 이름"AboMapperCustom-43155"내가 이해서 IIS7 호환층 대하여 책.
는 경우,IIS 관리자에서,나는 그때를 제거 그 핸들러를 매핑을,그 다음은 다른 실행하여 책 스크립트를 쿼리하는 스크립트맵산,검색된 스크립트 맵에서 스크립트에서는 여전히 항목을 그냥 제거됩니다.결과에 제 스크립트와 동의하지 않는 목록의"핸들러를 매핑"과 같 IIS 관리자입니다.
이 지속도 후에 시작/정지의 IISADMIN 및 W3SVC.
이것이 예상되는 동작입니까?제가 지원되는"호환성 모드에서"IIS7.이 아티팩트는?
내가 믿는 경우에는 핸들러를 매핑을 제거에서 IIS 관리자,그때는 정말 사라지만 아직도 그것을 가져옵에서 반환하여 책 쿼리가 있습니다.
할 수 있는 사람이 제공에 어떤 정화를 이?
해결책
을 추가하면'스크립트 맵을 사용하여 제한 호환성 비트(기본값을 사용하는 웹사이트에 대한 논쟁을 위해)이 추가하는 핸들러를 매핑 applicationHost.config
파일에 대해 사이트:
<location path="Default Web Site">
<system.webServer>
<handlers>
<add name="AboMapperCustom-12345678" ... />
</handlers>
</system>
</location>
를 삭제할 때 핸들러를 매핑에서 IIS7 관리자를 대신 제거에서 매핑 applicationHost.config
파일과 섹션에서 다음과 같이,위의 web.config
파일에 추가하여 사이트의 루트와 함께 다음과 같다:
<configuration>
<system.webServer>
<handlers>
<remove name="AboMapperCustom-12345678" />
</handlers>
</system>
</configuration>
할 때 구성한 웹 사이트를 사용하여 새로운 관리 Microsoft.Web.Administration
.NET API 를 읽을 수 있습니다 config 서로 다른 수준에서,예를 들어:
1:구성을 읽기에 applicationHost.config
또 APPHOST 수준
ServerManager serverManager = new ServerManager();
var site = serverManager.Sites.Where(s => s.Id == 1).SingleOrDefault();
Configuration siteConfig = serverManager.GetApplicationHostConfiguration();
ConfigurationSection handlersSection =
siteConfig.GetSection("system.webServer/handlers", site.Name);
ConfigurationElementCollection handlersCollection =
handlersSection.GetCollection();
foreach (var item in handlersCollection)
{
Console.WriteLine(item.Attributes["name"].Value);
}
위의 예제에서도 삭제된 매핑을,그것은 여전히 나와 반복할 때 처리기 매핑 컬렉션입니다.이 때문에 당신이 요청한 구성에서 응용 프로그램 호스트 수준입니다.모 web.config
파일에 존재하는 사이트에 뿌리거나 아래를 읽을 수 없고 그들의 핸들러 <add/>
고 <remove/>
지시어는 포함되지 않습니다.
2:을 읽을 수 있습 구성하는 특정 사이트에(또는 하위 사이트에서):
ServerManager serverManager = new ServerManager();
Configuration siteConfig = serverManager.GetWebConfiguration("Default Web Site");
ConfigurationSection handlersSection =
siteConfig.GetSection("system.webServer/handlers");
ConfigurationElementCollection handlersCollection =
handlersSection.GetCollection();
foreach (var item in handlersCollection)
{
Console.WriteLine(item.Attributes["name"].Value);
}
또한이 사이트를 읽어 web.config
파일을 반환 핸들러를 매핑하는 목록에 대한 계정 <add/>
고 <remove/>
지시어에 지정 web.config
.
이것은 어떤 IIS7 관리자는 응용 프로그램을 때 당신은 당신을 보고 수정하는 핸들러를 매핑됩니다.그것은 추가 및 제거 처리기에 의해 생성(필요한 경우)a web.config
파일에서 사이트의 루트 폴더(하위)및 추가 필요 <add/>
고 <remove/>
습니다.
이 lls6 에 호환성이 나타납 운영에 전적으로 applicationHost.config
APPHOST 준(옵션 1 위에)어떤 이유에 당신을보고 이러한 차이점이 있습니다.
그것은 버그?나는 확실하지 않기 때문에 그것이 궁극적으로 제지 않았 web.config
을 알고 있습니다.또한 MS 것을 추가하는 새로운 방법 또는 플래그를 지정할 수 있는 수준 당신이 정말로 원하는 이들에게'스크립트 맵의 변경 내용과 그 의미할 수 있습을 깨고 테스트하여 책 구성요소에서 차례로 소개할 수 있습니다.행동을 시뮬레이션을 수정하 old lls6 에 메타베이스 및 applicationHost.config
에서 효과하는 것과 유사한 메타베이스 그래서 당신이 주장할 수 있습니,바르게 또는 잘못,그것의 일을 하고 있다.