我在执行应用程序中的实现时遇到问题。我有一些可以在Visual Studio中正常工作,运行和访问其信息的Web服务。
例如,可以通过IE访问与Web服务地址的连接,并且服务还可以。
我在应用程序中执行可执行文件,当尝试访问Web服务时,出现403(禁止访问)错误。
凭据很好,因为触发错误的行是在身份验证完成后使用Web服务的方法时。
即使在应用程序中以管理员权限运行,它也会显示相同的错误。 WCF服务由本地管理员用户运行。
我已经尝试在与使用该方法相同的范围内进行请求,但未成功。
private SI_Out_SyncClient WebserviceConnection ()
{
BasicHttpBinding binding = new BasicHttpBinding(BasicHttpSecurityMode.TransportCredentialOnly);
binding.MaxBufferSize = 2147483647;
binding.MaxReceivedMessageSize = 2147483647;
binding.CloseTimeout = new TimeSpan(1, 5, 0);
binding.OpenTimeout = new TimeSpan(1, 5, 0);
binding.SendTimeout = new TimeSpan(1, 5, 0);
binding.Security.Transport.ClientCredentialType = HttpClientCredentialType.Basic;
binding.Security.Transport.ProxyCredentialType = HttpProxyCredentialType.Basic;
EndpointAddress address = new EndpointAddress(Library.Environment.GetGlobalString("ENDPOINT"));
var client = new SI_Out_SyncClient(binding, address);
client.ClientCredentials.Windows.AllowedImpersonationLevel = System.Security.Principal.TokenImpersonationLevel.Impersonation;
client.ClientCredentials.UserName.UserName = Library.Environment.GetGlobalString("USER");
client.ClientCredentials.UserName.Password = Library.Environment.GetGlobalString("PASSWORD");
return client;
}
我希望能够像在调试中一样在应用程序中运行,但是以正确的方式进行,而无需将调试编译模式设置为true。
谢谢!
答案 0 :(得分:1)
我知道发生了什么事。
就我而言,运行WCF服务的管理员用户无法访问Internet。
一个愚蠢的错误,但是值得注册,因为我在研究中没有找到类似的方向。