string url = "http://10.120.206.156/Venus4A/services/Venus4AService/WebServiceTest.wsdl";
object hasAlive = WebServiceHelper.InvokeWebService(url,"validateTicket","validateTicket",null);public static object InvokeWebService(string url, string classname, string methodname, object[] args) {
try {
string@namespace = "EnterpriseServerBase.WebService.DynamicWebCalling";
if ((classname == null) || (classname == "")) {
string[] parts = url.Split('/');
string[] pps = parts[parts.Length - 1].Split('.');
classname = pps[0];
} System.Net.WebClient wc = new System.Net.WebClient();
System.IO.Stream stream = wc.OpenRead(url + "?WSDL"); System.Web.Services.Description.ServiceDescription sd = System.Web.Services.Description.ServiceDescription.Read(stream);
System.Web.Services.Description.ServiceDescriptionImporter sdi = new System.Web.Services.Description.ServiceDescriptionImporter();
sdi.AddServiceDescription(sd, "", "");
System.CodeDom.CodeNamespace cn = new System.CodeDom.CodeNamespace(@namespace);
System.CodeDom.CodeCompileUnit ccu = new System.CodeDom.CodeCompileUnit();
ccu.Namespaces.Add(cn);
sdi.Import(cn, ccu); Microsoft.CSharp.CSharpCodeProvider csc = new Microsoft.CSharp.CSharpCodeProvider();
System.CodeDom.Compiler.ICodeCompiler icc = csc.CreateCompiler(); System.CodeDom.Compiler.CompilerParameters cplist = new System.CodeDom.Compiler.CompilerParameters();
cplist.GenerateExecutable = false;
cplist.GenerateInMemory = true;
cplist.ReferencedAssemblies.Add("System.dll");
cplist.ReferencedAssemblies.Add("System.XML.dll");
cplist.ReferencedAssemblies.Add("System.Web.Services.dll");
cplist.ReferencedAssemblies.Add("System.Data.dll"); System.CodeDom.Compiler.CompilerResults cr = icc.CompileAssemblyFromDom(cplist, ccu);
if (true == cr.Errors.HasErrors) {
System.Text.StringBuilder sb = new System.Text.StringBuilder();
foreach(System.CodeDom.Compiler.CompilerError ce in cr.Errors) {
sb.Append(ce.ToString());
sb.Append(System.Environment.NewLine);
}
throw new Exception(sb.ToString());
}
System.Reflection.Assembly assembly = cr.CompiledAssembly;
//Type t = assembly.GetType(@namespace + "." + classname + "Service", true, true);
Type t = assembly.GetType(@namespace + "." + classname, true, true);
object obj = Activator.CreateInstance(t);
System.Reflection.MethodInfo mi = t.GetMethod(methodname);
if (args == null) return mi.Invoke(obj, null);
else return mi.Invoke(obj, args);
} catch(Exception ex) {
throw ex;
}
}总是报出 基础连接已关闭,无法连接远程服务。各位大侠,帮帮忙,找找原因以及解决方法。跪求答案。在线等!!!!!走到红色部分时出的问题!
object hasAlive = WebServiceHelper.InvokeWebService(url,"validateTicket","validateTicket",null);public static object InvokeWebService(string url, string classname, string methodname, object[] args) {
try {
string@namespace = "EnterpriseServerBase.WebService.DynamicWebCalling";
if ((classname == null) || (classname == "")) {
string[] parts = url.Split('/');
string[] pps = parts[parts.Length - 1].Split('.');
classname = pps[0];
} System.Net.WebClient wc = new System.Net.WebClient();
System.IO.Stream stream = wc.OpenRead(url + "?WSDL"); System.Web.Services.Description.ServiceDescription sd = System.Web.Services.Description.ServiceDescription.Read(stream);
System.Web.Services.Description.ServiceDescriptionImporter sdi = new System.Web.Services.Description.ServiceDescriptionImporter();
sdi.AddServiceDescription(sd, "", "");
System.CodeDom.CodeNamespace cn = new System.CodeDom.CodeNamespace(@namespace);
System.CodeDom.CodeCompileUnit ccu = new System.CodeDom.CodeCompileUnit();
ccu.Namespaces.Add(cn);
sdi.Import(cn, ccu); Microsoft.CSharp.CSharpCodeProvider csc = new Microsoft.CSharp.CSharpCodeProvider();
System.CodeDom.Compiler.ICodeCompiler icc = csc.CreateCompiler(); System.CodeDom.Compiler.CompilerParameters cplist = new System.CodeDom.Compiler.CompilerParameters();
cplist.GenerateExecutable = false;
cplist.GenerateInMemory = true;
cplist.ReferencedAssemblies.Add("System.dll");
cplist.ReferencedAssemblies.Add("System.XML.dll");
cplist.ReferencedAssemblies.Add("System.Web.Services.dll");
cplist.ReferencedAssemblies.Add("System.Data.dll"); System.CodeDom.Compiler.CompilerResults cr = icc.CompileAssemblyFromDom(cplist, ccu);
if (true == cr.Errors.HasErrors) {
System.Text.StringBuilder sb = new System.Text.StringBuilder();
foreach(System.CodeDom.Compiler.CompilerError ce in cr.Errors) {
sb.Append(ce.ToString());
sb.Append(System.Environment.NewLine);
}
throw new Exception(sb.ToString());
}
System.Reflection.Assembly assembly = cr.CompiledAssembly;
//Type t = assembly.GetType(@namespace + "." + classname + "Service", true, true);
Type t = assembly.GetType(@namespace + "." + classname, true, true);
object obj = Activator.CreateInstance(t);
System.Reflection.MethodInfo mi = t.GetMethod(methodname);
if (args == null) return mi.Invoke(obj, null);
else return mi.Invoke(obj, args);
} catch(Exception ex) {
throw ex;
}
}总是报出 基础连接已关闭,无法连接远程服务。各位大侠,帮帮忙,找找原因以及解决方法。跪求答案。在线等!!!!!走到红色部分时出的问题!
解决方案 »
- 时间计算问题,如何判断?
- 我的页面上添加了一个用户控件,页面加载两次是怎么回事?(急!!!)
- vs 2005 怎么调用另一个网页里面的函数?
- 在.net下怎么用AJAX方法修改标题
- 關於asp於asp.net的問題!??
- VS2005,刚把他的SDK快速入门教程也装好,现在进不去!显示错误Server Application Unavailable !看日志错误号是500:Interal Server err
- ■■■■■谁说这不是个很离谱的错误???■■■■■
- 急问各位兄弟:本论坛左边用的是什么控件啊?
- 如何在页面上显示服务器上摄像头的内容
- RequiredFieldValidator问题.
- 正则表达式,匹配4个以上的正整数???
- 用户控件向Page怎么传递参数?
.wsdl";改成这样后 http://10.120.206.156/Venus4A/services/Venus4AService/WebServiceTest 还是出现这个问题。这是那个wsdl文件
<?xml version="1.0" encoding="UTF-8"?>
<wsdl:definitions targetNamespace="http://10.120.206.156:8089/Venus4A/services/Venus4AService" xmlns:apachesoap="http://xml.apache.org/xml-soap" xmlns:impl="http://10.120.206.156:8089/Venus4A/services/Venus4AService" xmlns:intf="http://10.120.206.156:8089/Venus4A/services/Venus4AService" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:wsdlsoap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<!--
WSDL created by Apache Axis version: 1.3
Built on Oct 05, 2005 (05:23:37 EDT) -->
<wsdl:message name="validateTicketRequest">
<wsdl:part name="name" type="xsd:string"/>
</wsdl:message>
<wsdl:message name="validateTicketResponse">
<wsdl:part name="validateTicketReturn" type="xsd:string"/>
</wsdl:message>
<wsdl:portType name="WebServiceTest">
<wsdl:operation name="validateTicket" parameterOrder="name">
<wsdl:input message="impl:validateTicketRequest" name="validateTicketRequest"/>
<wsdl:output message="impl:validateTicketResponse" name="validateTicketResponse"/>
</wsdl:operation>
</wsdl:portType>
<wsdl:binding name="Venus4AServiceSoapBinding" type="impl:WebServiceTest">
<wsdlsoap:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http"/>
<wsdl:operation name="validateTicket">
<wsdlsoap:operation soapAction=""/>
<wsdl:input name="validateTicketRequest">
<wsdlsoap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="http://venus4Atest" use="encoded"/>
</wsdl:input>
<wsdl:output name="validateTicketResponse">
<wsdlsoap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="http://10.120.206.156:8089/Venus4A/services/Venus4AService" use="encoded"/>
</wsdl:output>
</wsdl:operation>
</wsdl:binding>
<wsdl:service name="WebServiceTestService">
<wsdl:port binding="impl:Venus4AServiceSoapBinding" name="Venus4AService">
<wsdlsoap:address location="http://10.120.206.156:8089/Venus4A/services/Venus4AService"/>
</wsdl:port>
</wsdl:service>
</wsdl:definitions>
改成这样后 http://10.120.206.156/Venus4A/services/Venus4AService/WebServiceTest 还是出现这个问题。这是那个wsdl文件
<?xml version="1.0" encoding="UTF-8"?>
<wsdl:definitions targetNamespace="http://10.120.206.156:8089/Venus4A/services/Venus4AService" xmlns:apachesoap="http://xml.apache.org/xml-soap" xmlns:impl="http://10.120.206.156:8089/Venus4A/services/Venus4AService" xmlns:intf="http://10.120.206.156:8089/Venus4A/services/Venus4AService" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:wsdlsoap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<!--
WSDL created by Apache Axis version: 1.3
Built on Oct 05, 2005 (05:23:37 EDT) -->
<wsdl:message name="validateTicketRequest">
<wsdl:part name="name" type="xsd:string"/>
</wsdl:message>
<wsdl:message name="validateTicketResponse">
<wsdl:part name="validateTicketReturn" type="xsd:string"/>
</wsdl:message>
<wsdl:portType name="WebServiceTest">
<wsdl:operation name="validateTicket" parameterOrder="name">
<wsdl:input message="impl:validateTicketRequest" name="validateTicketRequest"/>
<wsdl:output message="impl:validateTicketResponse" name="validateTicketResponse"/>
</wsdl:operation>
</wsdl:portType>
<wsdl:binding name="Venus4AServiceSoapBinding" type="impl:WebServiceTest">
<wsdlsoap:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http"/>
<wsdl:operation name="validateTicket">
<wsdlsoap:operation soapAction=""/>
<wsdl:input name="validateTicketRequest">
<wsdlsoap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="http://venus4Atest" use="encoded"/>
</wsdl:input>
<wsdl:output name="validateTicketResponse">
<wsdlsoap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="http://10.120.206.156:8089/Venus4A/services/Venus4AService" use="encoded"/>
</wsdl:output>
</wsdl:operation>
</wsdl:binding>
<wsdl:service name="WebServiceTestService">
<wsdl:port binding="impl:Venus4AServiceSoapBinding" name="Venus4AService">
<wsdlsoap:address location="http://10.120.206.156:8089/Venus4A/services/Venus4AService"/>
</wsdl:port>
</wsdl:service>
</wsdl:definitions>