内部でWCFサービスをホストするWindowsサービスがあります。以下は、エンドポイントの初期化方法の定義です。
WebHttpBinding binding = new WebHttpBinding(WebHttpSecurityMode.TransportCredentialOnly);
binding.Security.Transport.ClientCredentialType = HttpClientCredentialType.Windows;
string url = ConfigurationManager.AppSettings["serviceUrl"];
Uri baseAddress = new Uri(url);
Uri metadataAddress = new Uri(url + "Description");
CallService service = new CallService(controller);
ServiceHost host = new WebServiceHost(service);
host.AddServiceEndpoint(typeof (ICallService), binding, baseAddress);
host.Authorization.PrincipalPermissionMode = PrincipalPermissionMode.UseWindowsGroups;
ServiceDebugBehavior stp = host.Description.Behaviors.Find<ServiceDebugBehavior>();
stp.HttpHelpPageEnabled = true;
ServiceMetadataBehavior smb = new ServiceMetadataBehavior();
smb.HttpGetEnabled = true;
smb.MetadataExporter.PolicyVersion = PolicyVersion.Policy15;
smb.HttpGetUrl = metadataAddress;
host.Description.Behaviors.Add(smb);
host.Open();
問題は、コンピューター名 (例: http://mycomputer.mydomain.int:4544/Somthing )を使用してこの WCF サービスにアクセスすると、最初に認証ウィンドウが表示され、その後 HTTP:400 が表示されることです。
Windows認証を使用してサービスにアクセスする場合、http://localhost:4544/Something,
またはWindows認証をオフにすると、すべて正常に機能します。
それの何が問題なのですか?