gpt4 book ai didi

.net - Win32异常 :The target principal name is incorrect when calling a WCF service with WebClient

转载 作者:行者123 更新时间:2023-12-02 17:36:04 25 4
gpt4 key购买 nike

我用 linqpad 快速组合了一段示例代码,显示了 WCF web 服务调用,而没有从 WSDL 创建代理类。这是我拥有的:

using (var wb = new WebClient())
{
wb.Credentials = CredentialCache.DefaultNetworkCredentials;
wb.Headers.Add("Content-Type: text/xml;charset=UTF-8");
wb.Headers.Add("SOAPAction: \"http://tempuri.org/Core/Project_GetNumberForExternalUse\"");

String requestString = @"
<soapenv:Envelope xmlns:soapenv=""http://schemas.xmlsoap.org/soap/envelope/"" xmlns:tem=""http://tempuri.org/"">
<soapenv:Header/>
<soapenv:Body>
<tem:Project_GetNumberForExternalUse>
<!--Optional:-->
<tem:extData1>ext 1</tem:extData1>
<!--Optional:-->
<tem:extData2>ext 2</tem:extData2>
<!--Optional:-->
<tem:extData3>ext 3</tem:extData3>
<!--Optional:-->
<tem:extData4>ext 4</tem:extData4>
<!--Optional:-->
<tem:extDataLong>ext 1ext 1ext 1ext 1ext 1</tem:extDataLong>
</tem:Project_GetNumberForExternalUse>
</soapenv:Body>
</soapenv:Envelope>
";

var response = wb.UploadString("http://myserver:55002/Core.svc", "POST", requestString);
response.Dump();
}

这在连接到 localhost 而不是 myserver 时工作正常。 WCF 服务配置为使用 Windows 身份验证。根据错误,我猜测问题是服务主体名称未包含在授权中。如果我使用带有代理的 WCF 客户端,我会在端点/身份配置部分解决这个问题。但是,我没有看到在代码中设置它的方法。有没有办法这样做?是否有其他方法可以绕过此要求?

最佳答案

关于.net - Win32异常 :The target principal name is incorrect when calling a WCF service with WebClient,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26788836/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com