2013-10-02 24 views
0

我已成功使用CUB調用Web服務,但我依賴於app.config中的配置。我想知道是否有可能通過代碼生成綁定,而無需向app.config添加任何條目。在不使用App.Config的情況下使用ClearUsernameBinding

我曾嘗試以下:

ClearUsernameBinding binding = new ClearUsernameBinding(); 
EndpointAddress address = new EndpointAddress("http://localhost:8087/SampleService/"); 

EchoServiceReference.EchoServiceClient client = new EchoServiceReference.EchoServiceClient(binding, address); 
client.ClientCredentials.UserName.UserName = "yaron"; 
client.ClientCredentials.UserName.Password = "1234"; 
Console.WriteLine(client.EchoString("hi")); 

,但我得到了錯誤:

Envelope Version 'EnvelopeNone (http://schemas.microsoft.com/ws/2005/05/envelope/none)' does not support adding Message Headers. 
+0

如果代替ClearUsernameBinding你使用BasicHttpBinding你會得到同樣的錯誤嗎? –

+0

如果我嘗試使用由代碼創建的BasicHttpBinding,我會得到「Content Type text/xml; charset = utf-8不受服務http:// localhost:8087/SampleService /支持,客戶端和服務綁定可能不匹配。我試圖連接到您在CUB解決方案中包含的TestService。基於app.config創建CUB工作正常,但通過代碼創建CUB失敗,並在問題中發佈錯誤。有什麼不同?我需要通過代碼添加app.config的哪一部分? –

+0

請給我一個重現問題的示例sln。你只需要客戶端代碼。 –

回答

0

在創建綁定添加以下代碼:

binding.SetMessageVersion(System.ServiceModel.Channels.MessageVersion.Soap11); 
+1

感謝工作,但與bind.SetMessageVersion(System.ServiceModel.Channels.MessageVersion.Soap12); –

相關問題