3
我有問題以編程方式使用WebService,使用squid代理下的WSDL。我的應用程序是用c#.net編譯的。我編譯大會從XML,導入後使用該服務描寫的特徵:以編程方式Web服務代理類的代理憑據
// a namespace and compile unit are needed by importer
CodeNamespace codeNamespace = new CodeNamespace();
CodeCompileUnit codeUnit = new CodeCompileUnit();
codeUnit.Namespaces.Add(codeNamespace);
ServiceDescriptionImportWarnings importWarnings = descriptionImporter.Import(codeNamespace, codeUnit);
if (importWarnings == 0) // no warnings
{
// create a c# compiler
CodeDomProvider compiler = CodeDomProvider.CreateProvider("CSharp");
// include the assembly references needed to compile
string[] references = new string[2] { "System.Web.Services.dll", "System.Xml.dll" };
CompilerParameters parameters = new CompilerParameters(references);
// compile into assembly
CompilerResults results = compiler.CompileAssemblyFromDom(parameters, codeUnit);
foreach (CompilerError oops in results.Errors)
{
// trap these errors and make them available to exception object
throw new Exception("Compilation Error Creating Assembly");
}
// all done....
return results.CompiledAssembly;
}
else
{
// warnings issued from importers, something wrong with WSDL
throw new Exception("Invalid WSDL");
}
問題是,當我調用的方法調用(OBJ,參數)。代理切斷連接,如果我使用外部地址調用WSDL,如http://My_external_ip/my_webService.asmx。如果我打電話使用內部地址,工作正常。
當我添加Web引用,手動,我用做一些事情,如:
WebService WS = new WebService();
WS.Proxy = Proxy.credentials;
它的工作,但我找不到地方使用時,大會給代理憑據。
謝謝你們。
我相信這是這個問題的一個DUP:http://stackoverflow.com/questions/289601/connecting-to-an-asmx-webservice-with-wcf-through-a-proxy – ryber
我嘗試將CustomBinding添加到app.config並且不起作用。在那篇文章中,所需的身份驗證是用於Web服務還是驗證進入SQUID代理? – Varois