웹 서비스 구성을 변경하는 데 사용할 수있는 구성 유틸리티를 만들고 있습니다. 내 응용 프로그램이 exe를 많이 가지고 있으며 많은 구성 파일을 포함하고 있으므로이 작업을 수행하고 있습니다.WCF 웹 서비스 연결 테스트 유틸리티
많은 서비스가 있기 때문에 웹 서비스의 구성을 변경하는데도 사용됩니다. 유틸리티를 통해 연결 문자열에서 서버와 가상 디렉터리를 쉽게 변경하고 변경할 수있는 방법이 필요합니다.
그래서 내가하려는 것은 서비스 URL을 사용하고 연결을 시도하여 프록시를 만들지 않고 연결을 설정할 수 있는지 확인하는 것입니다.
는 지금까지 내가 뭐하는 거지입니다 :
string url = "http://localhost/VirtualDirectory/Service.svc";
HttpWebRequest request = WebRequest.Create(url) as HttpWebRequest;
request.Credentials = new NetworkCredential("UserName", "Password");
using(HttpWebResponse response = request.GetResponse() as HttpWebResponse)
{
if (response.StatusCode == HttpStatusCode.OK)
{ MessageBox.Show("Connection successful!"); }
else
{ MessageBox.Show("Connection failed!!!"); }
}
하지만 을 얻고있다 "원격 서버가 오류 반환 :. (401) 무단를"은과 예외 상태는 "System.Net.WebExceptionStatus.ProtocolError"
입니다하지만 브라우저에서 이러한 자격 증명을 사용하여 웹 서비스에 연결하려고 할 때, 나는 연결하고 서비스 XML을 볼 수 있어요.
내가 잘못하고 있거나 IIS 쪽 (IIS 7.5)에서 잘못된 것이 있는지 확실하지 않습니다. 서비스에 대해 익명 인증이 사용되며 IIS에서 나머지는 사용할 수 없습니다.
다른 SO 질문에서 해결책을 얻을 수 없습니다. 그러나 그것은 가능한 중복 될 수 있습니다. 이 경우 링크를 제공하십시오.
감사합니다.
왜 당신이 당신의 서비스를 소비하는 채널 팩터를 사용하지 마십시오 : 아래
은 나를 위해 일한 코드입니다? webHttpBinding 엔드 포인트가 있습니까? – AlexChannelFactory를 사용하고 싶지 않은 이유는 서비스를 사용하고 싶지 않기 때문입니다. 난 그냥 사용자가 입력 한 새 서버 이름과 가상 디렉터리가 올바른지 확인하고 연결을 설정할 수 있는지 확인합니다. 나는 많은 일을하고 싶지 않고, 단지 연결을 설정하고 닫습니다. –