IIS Express에서 실행중인 웹 응용 프로그램에서 인트라넷 웹 서비스에 연결하려고 시도하면 웹 서비스는 403 Forbidden을 반환합니다. 단위 테스트를 통해 또는 Cassini 또는 IIS 7.5에서 내 서버에서 실행중인 동일한 사이트에서 액세스 할 때 서비스가 올바르게 작동합니다. 내 직감은 이것이 구성 문제라고 말하지만, 어디서부터 시작해야할지 모르겠습니다.IIS Express에서 원격 웹 서비스에 액세스하면 403이 금지됩니다.
IIS Express에서 실행되는 사이트에서 원격 웹 서비스가 해당 서비스에 액세스 할 때 403 금지됨을 반환하게하는 원인은 무엇입니까?
내가 액세스하고있는 서비스를 명확히하기 위해 SOAP 기반이 아닙니다. 특정 네트워크 인증 정보를 설정하고 아래 요청 코드와 함께 전달합니다.
protected XDocument Search(Uri requestUri)
{
var nc = new NetworkCredential(this.config.ServiceUserName,
this.config.ServicePassword);
var cCache = new CredentialCache();
cCache.Add(requestUri, "Basic", nc);
var request = (HttpWebRequest)HttpWebRequest.Create(requestUri);
request.Credentials = cCache;
request.PreAuthenticate = true;
request.Method = WebRequestMethods.Http.Get;
var response = (HttpWebResponse)request.GetResponse();
return XDocument.Load(new StreamReader(response.GetResponseStream()));
}
시작 : 귀하의 cassini 앱이 사용자 ID로 실행되고있을 가능성이 큽니다. 반면에 IIS Express는 아마도 다른 Windows ID로 실행 중일 것입니다. 아마 IUSR (나는 IIS Express를 모른다). 원격 서비스는 아마도 Windows 인증을 사용하며 익명 액세스를 허용하지 않습니다. 따라서 원격 서버의 IIS vdir에서 IIS Express (컴퓨터 \ IUSR, 컴퓨터는 IIS Express를 실행하는 컴퓨터의 이름)의 ID에 사용 권한을 부여해야합니다. – Cheeso
@Cheeso 내 질문에 코드를 게시해야합니다. 나는 인증을 제공하고 있으므로 혼란 스럽다. – ahsteele